0

というコレクションがありpeopleます。

私はこれを行うことができることを知っています:

db.people.find( { $where: "this.lastname == this.firstname" } );

しかし、どうすればこのようなことができますか:

db.people.find( { $where: "this.lastname == Acquaintances.lastname" } );

人による翻訳: 同じ名前の知人が少なくとも 1 人いるすべての人。

知り合いは、サブドキュメントの配列です。

4

1 に答える 1

0

mongodb$whereコマンドは に似てmap reduceおり、抽出されたデータに対して JavaScript 式を処理します。実行速度の遅いバックグラウンド ジョブにのみ適しています。通常の状況では、これを使用しないでください。

function () {
    var arr = [];
    for (i in this.Acquaintances) {
        arr.push(this.Acquaintances[i].lastname);
    }
    return arr.indexOf(this.lastname) > -1;
}

db.people.find(f)

詳細については、このリンクを確認してください$where

于 2012-10-16T14:52:52.813 に答える