MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Elemento dell'array di aggiornamento MongoDB

Sei andato troppo in profondità con quel carattere jolly $ . Fai una corrispondenza per un elemento nei Fields array, quindi puoi accedervi con:Fields.$ . Questa espressione restituisce la prima corrispondenza nei tuoi Fields array, quindi raggiungi i suoi campi da Fields.$.Field o Fields.$.Result .

Ora, aggiorniamo l'update :

db.test.update({
    "Fields.Field": "Lot No"
}, {
    $addToSet: {
        "Fields.$.Rules": {
            'item_name': "my_item_two",
            'price':1
        }
    }
}, false, true);

Tieni presente che ho abbreviato la query in quanto è uguale alla tua espressione.