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

ネストされた配列に複数プッシュする方法

    問題:配列フィルターでは、_idがObjectIdではなく文字列と一致します

    次のクエリは、コレクションを正確に更新します。

    db.companies.update(
        {
            _id: ObjectId("5d7052a3807ab14e286ba5bd")
        }, 
        {
            $push: {
                "companyBases.$[filter1].vehicles": {
                    "name": "Truck 1",
                    "combustion": 28
                },
                "companyBases.$[filter2].vehicles": {
                    "name": "Truck 2",
                    "combustion": 28
                }
            }
        }, 
        {
            "arrayFilters": [{
                    "filter1._id": ObjectId("5d7052a3807ab14e286ba5b0")
                },
                {
                    "filter2._id": ObjectId("5d7052a3807ab14e286ba5af")
                }
            ]
        }
    )
    



    1. mongodbのEmbeddedArraysVSフラットドキュメントの長所と短所は何でしょうか?

    2. MongoDBノードドライバーがインスタンスプールを生成してエラーを破棄するのはなぜですか?

    3. MongoDBは、サブドキュメントの各キーを集計します

    4. 原因:java.lang.IllegalArgumentException:CONTAINING(1):[IsContaining、Containing、Contains]はredisクエリの派生ではサポートされていません-Redis