2010-06-16 7 views
3

Je veux créer un DBRef manuellement afin que je puisse ajouter un champ supplémentaire. Cependant, lorsque je tente de passer les éléments suivants:Comment créer manuellement un DBRef en utilisant pymongo?

{'$ref': 'projects', '$id': '1029412409721', 'project_name': 'My Project'} 

Pymongo déclenche une erreur:

pymongo.errors.InvalidName: key '$id' must not start with '$' 

Il semblerait que la réserve pymongo la $ pour la clé spéciale, me conduit à se demander si elle est encore possible de faire ce que j'essaie de faire?

Répondre

3

Vous ne voulez probablement pas les créer manuellement, car les clés de DBRefs doivent être commandées. Nous pourrions ajouter une option pour créer une instance DBRef w/custom kwargs, ce qui résoudrait votre problème. Si vous déposez un jira pour cela, nous devrions être en mesure de le sortir dans une prochaine version.

+0

Oui, j'ai utilisé la syntaxe dict pour la brièveté ici. J'ai utilisé à l'origine un objet SON qui, autant que je peux dire, maintient l'ordre des clés. Cependant, les clés refusaient toujours de me laisser utiliser $. – Soviut

+0

http://jira.mongodb.org/browse/PYTHON-133 Fonction demandée. – Soviut

+0

Gotcha. Peut-être devrions-nous faire un cas spécial pour que DBRef vous laisse créer manuellement, mais je pense que votre cas JIRA est une meilleure solution. Je vais essayer de sortir ça bientôt. – mdirolf

Questions connexes