私は、各オブジェクトが名前、親、および他のいくつかのフィールドを持つ「ファイル」というテーブルを持っています。私がしたいのは、ファイル名が与えられれば、ルートへのパスを見つけ出すことです(ルートは親が ''のときに起こります)。どのようにして(Node.js上で動作する)Mongooseを任意のクエリ文字列にすることができますか?
私はMongoのターミナルで実行したときに完璧に動作し、クエリがあります。残念ながら
var currentFile = parent;
var queue = [];
while(currentFile !== '') {
var file = db.files.find({ name: currentFile });
currentFile = file[0].parent;
queue.push(currentFile);
}
を、しかし、マングースは(私の知る限りでは、ドキュメントから見てきたように)任意の文字列のクエリを許可しません。 Mongooseが同期クエリを許可していれば、私はそれを行うことができますが、その能力を見つけることはできません。
が最初のコメントを再読み込みした後
を解決し、私はそれは私が必要なものを達成することが分かっcurrentFileが空になったとき、私が呼び出されるパラメータにコールバックを追加するために必要な
if(currentFile === '') {
callback();
else
recursiveFunc(currentFile, callback);
私はもう少し効率的になると決めるために、 'path'のフィールドも追加しました:)
皆さん、ありがとうございました!
私はこれを呼び出して、呼び出し後に取得する配列にすべての要素が含まれていることを確認できますか? "任意のクエリ文字列"とは、MongoDBサーバーにBSONの文字列(JavaScriptを含む)を送信して実行し、その結果を取得することを意味します。 – user1121823
ooooh。私は少しそれを変更させてください。 –