2017-03-11 5 views
0

Ich versuche ein Objekt innerhalb eines Arrays zu löschen. Aber dieses Array ist in zwei Objekten verschachtelt. Wie mache ich das?mongodb: Objekt innerhalb eines Arrays löschen, verschachtelt in zwei Objekten

Zum Beispiel: Nehmen wir an, ich will die Transaktion mit _id löschen: 58c3154a19f82c0ddc53f0de

Wie würde ich das tun ??

{ 
    "_id": { 
     "$oid": "58bad6cf93ab9703da331e25" 
    }, 
    "username": "[email protected]", 
    "password": "sha1$fc05ad7d$1$1cc86a287642516f947fda520ae8ddd42e983e23", 
    "firstName": "David", 
    "lastName": "David", 
    "transactions": { 
     "2017": { 
      "3": [ 
       { 
        "where": "Duane Reade", 
        "what": "asdf", 
        "category": 6, 
        "amount": "34", 
        "_id": { 
         "$oid": "58c300ef1602f90c7166cbfb" 
        }, 
        "date": { 
         "day": 10, 
         "month": 3, 
         "year": 2017 
        } 
       }, 
       { 
        "where": "Amazon", 
        "what": "asdf", 
        "category": 2, 
        "amount": "100", 
        "_id": { 
         "$oid": "58c3154a19f82c0ddc53f0de" 
        }, 
        "date": { 
         "day": 10, 
         "month": 3, 
         "year": 2017 
        } 
       } 
      ] 
     } 
    } 
} 

Antwort

0

Dazu müssen Sie den Operator $pull verwenden. Adressieren Sie Array-Elemente mit der Punktnotation. Die folgende Abfrage führt den Job aus:

db.user1.update({}, 
    {$pull: {'transactions.2017.3': {_id: ObjectId("58c3154a19f82c0ddc53f0de")}} 
}); 
Verwandte Themen