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

mgo:ドキュメント内の特定の配列を更新する方法

    あなたはこれを間違った方法で書いた。ウェアハウスの「id」値の一致は、「update」セクションではなく、ステートメントの「query」部分に属します。そのため、UpdateIdは必要ありません。 バリアントですが、Update 幅広いクエリ選択が可能になるため:

    query := bson.M{
        "_id": bson.ObjectIdHex(productId),
        "location.warehouse": bson.ObjectIdHex(warehouseId)
    }
    
    update := bson.M{
        "$set": bson.M{
            "location.$.count": 4
        }
    }
    
    err := coll.Update(query,update)
    

    また、"ドット表記" にも注意してください。 配列要素のセレクターは単一のフィールドであるため、ここではフォームで問題ありません。通常、必要なのは $elemMatchだけです。 一致を確立するために配列に複数のフィールドがある場合。




    1. mongorestoreコマンドは既存のレコードを置き換えますか?

    2. 埋め込み配列内の埋め込みドキュメントのプロジェクトフィールド

    3. AmazonEC2にMongoDBをデプロイするための6つのベストプラクティス

    4. Mongodb-複数のテキストインデックス:インデックスキーパターンが大きすぎるエラーコード67