0
我有一些麻烦与DBREF,看看这种情况:的MongoDB - DBREF
db.fruit.save ({"_id" : "1" , "name" : "apple"});
db.fruit.save ({"_id" : "2" , "name" : "grape"});
db.fruit.save ({"_id" : "3" , "name" : "orange"});
db.fruit.save ({"_id" : "4" , "name" : "pineapple"});
db.basket.save ({"_id" : "1", "items" : [
{"$ref" : "fruit", "$id" : "1", "quantity" : 5},
{"$ref" : "fruit", "$id" : "3", "quantity" : 10}
]})
现在,让我们找到了 “菜篮子” 集合:
> db.basket.find()
{ "_id" : "1", "items" : [
{
"$ref" : "fruit",
"$id" : "1"
},
{
"$ref" : "fruit",
"$id" : "3"
}
] }
“量” 属性消失了?!任何人都知道为什么?有其他选择吗?
谢谢。
但用最后一种方法,我如何获取所有项目数据,如加入? – jtomasrl 2012-11-08 15:12:19
MongoDb中没有加入 – 2012-11-15 13:10:31
只是为了说明,DBRef中支持其他字段,因为它实际上只是一个BSON对象;然而,MongoDB shell在渲染值时隐藏了除'$ ref','$ id'和可选的'$ db'字段之外的字段。一些ODM实际上将附加值存储在DBRef对象中(Doctrine使用类鉴别符值执行此操作)。也就是说,如果您始终引用同一个数据库和集合中的对象,那么在没有DBRef的情况下,您肯定会更好,因为在这种情况下'$ ref'和'$ db'没有用处。 – jmikola 2014-09-11 17:05:54