4

出于测试目的,我需要在 MongoDB 中手动创建一些对象。我的班级有另一个班级的参考字段。引用的对象已经存在。

我试图将现有对象的 Mongo-ID 作为值放入新对象中,但出现以下错误:

ReferenceField 只接受 DBRef: ['attribute'])

现在我的问题是:我在哪里得到或找到这个DBRef


一个例子:我的数据库中有一个用户。我想创建一个现有用户为"creator". 当我将用户 ID 放入创建者字段时,出现错误...

编辑:

我刚刚找到这个链接MongoDB - DBRef但该解决方案对我不起作用......

item : {"$ref" : "fruit", "$id" : "1"}

我的代码是这样的:

{ "name" : "MyGroup", "created_at" : "2011-05-22T00:46:38", "creator": { "$ref": "user", "$id": "501bd5ac32f28a1278e54435" } }

另一个编辑:

甚至 Mongo 文档都说我使用了正确的格式... http://www.mongodb.org/display/DOCS/Mongo+Extended+JSON。但仍然无法正常工作。

4

1 回答 1

5

您引用的问题中,用户使用数字字符串作为其文档 ID。在您的情况下,您似乎正在使用更常见的 ObjectId ,但将其作为字符串插入。假设您使用的是 PyMongo,您可能希望将ObjectId类用于DBRef$id的属性。

如果您知道所有此类引用都将指向同一个数据库和集合,那么使用手动引用(仅存储目标文档的_id)而不是 DBRef 对象可能是有意义的。这在Database References 文档中有更详细的解释。

于 2012-08-03T16:28:58.110 回答