私がやろうとしていることは次のとおりです。
複数のドキュメントに存在する可能性のあるオブジェクトがあり、これがベスト プラクティスかどうかはわかりませんが、それらの ObjectId をポインターとして使用しています。
書類A
{
"_id": {
"$oid": "51a02dade4b02780aeee5ab7"
},
"title": "My Document A",
"artifacts": [
"51a81d8ee4b084336fea2d33",
"asdfsdfe4b084336fea2d33"
]
}
文書B
{
"_id": {
"$oid": "51a02dade4b02780aeee5ab7"
},
"title": "My Document A",
"artifacts": [
"51a81d8ee4b084336fea2d33",
"123454b084336fea2d33"
]
}
個々のアーティファクトは次のようになります。このアーティファクトが変更された場合、それが存在するドキュメントを更新する必要はありません:
{
"_id": {
"$oid": "51a81d8ee4b084336fea2d33"
},
"title": "Artifact A",
"media": {
"player": "video",
"source": "http://www.youtube.com/watch?v=12334456"
}
}
私がやりたいことは、ドキュメント A またはドキュメント B のいずれかに示されているすべてのアーティファクトの拡張リストを、次のような配列で取得することです。
[{
"_id": {
"$oid": "51a81d8ee4b084336fea2d33"
},
"title": "Artifact A",
"media": {
"player": "video",
"source": "http://www.youtube.com/watch?v=12334456"
}
},
{
"_id": {
"$oid": "123455e4b084336fea2d33"
},
"title": "Artifact B",
"media": {
"player": "video",
"source": "http://www.youtube.com/watch?v=12334456"
}
}]
私が過去に行った方法は、クライアントからIDのリストをPOSTしてから使用することです
{_id: { $in: userQuestArray} }
しかし、クライアントからノードに常にポストバックしている場合、少し効率が悪いようです。特に、私が投稿している配列が何百ものアイテムである場合。