7
は、私は私のtaxon
コレクションはで次のスキーマを持っています。MongoDBの再帰クエリ
私は次のような結果を得るために再帰検索を実行したいと思います:_id: 1
とドキュメントまで、それぞれの親のna
配列の最初の項目を取得し、_id
特定した文書から
{ "_id": 4,
"nameList": [ "otherName_1",
"name_1",
"root_1"]
}
を到達しました
私は現在、Xクエリ(親文書で1つ、ここでは3つ)を実行してこの結果を得ていますが、これは単一のq uery。私は既に新しい$graphLookup演算子を見ていましたが、それを使って私の道を得ることができませんでした...
MongoDB 3.4.1を使用してこれを単一のクエリで実現できますか?
編集
私が最適解とは、例えば、単一のクエリ
のすべてを組み合わせることであろうので、それは希望が
var listId = [ 4, 128, 553, 2728, ...];
var cursor = db.taxon.aggregate([
{$match:
{ _id: {$in: listId}}
}, ...
)];
のように見え、50の文書たびにこれを実行します
となります。
[{ "_id": 4,
"nameList": [ "otherName_1",
"name_1",
"root_1"]
}, { "_id": 128,
"nameList": [ "some_other_ame_1",
"some_name_1",
"root_1"]
}, { "_id": 553,
"nameList": [ "last_other_ame_1",
"last_name_1",
"root_1"]
} ... ]
これは非常に素晴らしいソリューションです、ありがとうございます!同じ時間にいくつかの文書を作成することは可能でしょうか? (詳細は私の編集を参照してください) – felix
あなたは大歓迎です。更新された答え。一致する条件で動作するはずです。 – Veeram
私は$で試してみましたが、カーソルを反復するのを忘れました...これはまさに私が必要としているもので、実際のゲインを見るためにいくつかのパフォーマンステストを実行する必要があります!あなたはそのようなクエリのためのインデックスについて助言していますか? – felix