sql >> データベース >  >> NoSQL >> MongoDB

MongoDBでの複数の$whereクエリ

    JavaScriptとMongoDBの構文を多少混ぜたと思います。
    $ where サーバー側のJavaScriptエンジンによって実行されるため、 $ where ステートメントは、JavaSciptの構文に準拠している必要があります。たとえば、this.chr.no == 5 実際にはthis.chr[index].no == 5 あなたが期待したように;変数は、同時に2つの異なる値に等しくなることは不可能です。参考のために次のコード:

    var judge = function () {
        var unexpect = "X";
        var letter1 = unexpect, letter2 = unexpect;
        for (var i in this.chr) {
            var chr = this.chr[i];
            if (chr.no == 5) {
                letter1 = chr.letter;
            } else if (chr.no == 6) {
                letter2 = chr.letter;
            }
        }
        if (letter1 != letter2 && letter1 != unexpect && letter2 != unexpect) {
            return true;
        }
        return false;
    };
    
    db.sss.find({
        "pos": { "$gte": 200000, "$lt": 2000000 },
        "$and" : [{"chr.no" : 5}, {"chr.no" : 6}],    // narrow range further
        "$where": judge
    }, {"x_type":1, "sub_name":1, "name":1, "pos":1, "s_type":1, _id:0});
    


    1. Laravelの外部からLaravelキューにプッシュする(NodeJS)

    2. MongoDBアップサートが挿入または更新を行ったかどうかを確認します

    3. MongoClient、Singleton、またはスコープを使用するmongodbサービスを登録するにはどうすればよいですか?

    4. mongodbの新しいポートを構成する方法