MongoDB-DBRef [英] MongoDB - DBRef
本文介绍了MongoDB-DBRef的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在使用 DBRef 时遇到了一些问题,请看这个案例:
I am having some troubles with DBRef, look this case:
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}
]})
现在,让我们找到篮子"集合:
Now, lets find the "basket" collection:
> db.basket.find ()
{ "_id" : "1", "items" : [
{
"$ref" : "fruit",
"$id" : "1"
},
{
"$ref" : "fruit",
"$id" : "3"
}
] }
数量"属性消失了?!有人知道为什么吗?有替代品吗?
The "quantity" attribute disappeared ?! Anybody knows why ? Is there an alternative ?
谢谢.
推荐答案
dbref 是
{ $ref : <collname>, $id : <idvalue>[, $db : <dbname>] }
但是您在 dbref 中添加了不受支持的数量字段.那就是问题所在.把它带到外面
But you have added non-supported quantity field inside dbref. Thats the problem. take that outside
db.basket.save ({"_id" : "1", "items" : [
{"quantity" : 5 , item : {"$ref" : "fruit", "$id" : "1"}},
{"quantity" : 10, item : {"$ref" : "fruit", "$id" : "3"}}
]})
什么样的样子(吓人)
{
"_id" : "1",
"items" : [
{
"quantity" : 5,
"item" : {
"$ref" : "fruit",
"$id" : "1"
}
},
{
"quantity" : 10,
"item" : {
"$ref" : "fruit",
"$id" : "3"
}
}
]
}
但我的建议是,完全放弃 dbref,只使用像这样的简单结构
But my advice is, ditch the dbref altogether and just use the simple structure like this
db.basket.save ({"_id" : "1",items:[
{item_id:"1",quantity:50},
{item_id:"3",quantity:10}
]})
这更干净,看起来像
{
"_id" : "1",
"items" : [
{
"item_id" : "1",
"quantity" : 50
},
{
"item_id" : "3",
"quantity" : 10
}
]
}
这篇关于MongoDB-DBRef的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文