MongoDB には、users と address という 2 つの主要なコレクションがあります。1 番目のコレクション (ユーザー) で '$ref' と '$id' を使用して、2 番目のコレクション (アドレス) のドキュメントを参照しています。ユーザーとそのアドレスの詳細を表示するクエリを書きたいと思います。
これは私の最初のコレクション「ユーザー」です。1 件のドキュメントがあります
{
"_id" : ObjectId("52ffc33cd85242f436000001"),
"contact" : "987654321",
"dob" : "01-01-1991",
"name" : "Tom Benzamin",
"address" : [
{
"$ref" : "address",
"$id" : ObjectId("534009e4d852427820000002"),
"$db" : "test"
},
{
"$ref" : "address",
"$id" : ObjectId("52ffc4a5d85242602e000000"),
"$db" : "test"
}
]
}
これは私の2番目のコレクション「アドレス」です。3つのドキュメントがあります
{
"_id" : ObjectId("52ffc4a5d85242602e000000"),
"building" : "22 A, Indiana Apt",
"pincode" : 123456.0000000000000000,
"city" : "Los Angeles",
"state" : "California"
},
{
"_id" : ObjectId("52ffc4a5d85242602e000001"),
"building" : "170 A, Acropolis Apt",
"pincode" : 456789.0000000000000000,
"city" : "Chicago",
"state" : "Illinois"
},
{
"_id" : ObjectId("534009e4d852427820000002"),
"building" : "22 A, Indiana Apt",
"pincode" : 123456.0000000000000000,
"city" : "Los Angeles",
"state" : "California"
}
このコードを書きましたが、機能していません。実行すると「null」という単語が表示されます
var user = db.users.findOne({"name":"Tom Benzamin"})
var dbRef = user.address
db[dbRef.$ref].findOne({"_id":(dbRef.$id)})