0
私はこのケースを見て、DBRefといくつかのトラブルを抱えています:のMongoDB - DBRef
> db.basket.find()
{ "_id" : "1", "items" : [
{
"$ref" : "fruit",
"$id" : "1"
},
{
"$ref" : "fruit",
"$id" : "3"
}
] }
消えた "数量" 属性:
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}
]})
は今、 "バスケット" コレクションを見つけることができます!なぜ誰が知っていますか?代わりがありますか?
ありがとうございました。 dbrefため
最後のアプローチでは、どのようにして結合のようにすべてのアイテムデータを取得できますか? – jtomasrl
MongoDbには参加しません –
実際には単なるBSONオブジェクトなので、明確にするために、DBRef内で追加のフィールドがサポートされています。しかし、MongoDBシェルは、値のレンダリング時に '$ ref'、' $ id'、およびオプションの '$ db'フィールド以外のフィールドを隠します。いくつかのODMは実際にDBRefオブジェクトに追加の値を格納します(Doctrineはクラス識別器の値でこれを行います)。つまり、同じデータベースとコレクション内のオブジェクトを常に参照している場合は、 '$ ref'と' $ db'はそのような場合には役に立たないオーバーヘッドであるため、DBRefなしではより良い結果が得られます。 – jmikola