2017-03-11 20 views
0

配列内のオブジェクトを削除しようとしています。しかし、その配列は2つのオブジェクトの中にネストされています。これはどうすればいいですか?例えばmongodb:2つのオブジェクトにネストされた配列内のオブジェクトを削除する

:のは、私は _idとの取引を削除したいとしましょう:58c3154a19f82c0ddc53f0de

私はこれをどのように行うだろう?

{ 
    "_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 
        } 
       } 
      ] 
     } 
    } 
} 

答えて

0

これを行うには、$pull演算子を使用する必要があります。ドット表記の配列要素を扱います。次のクエリはジョブを実行します:

db.user1.update({}, 
    {$pull: {'transactions.2017.3': {_id: ObjectId("58c3154a19f82c0ddc53f0de")}} 
}); 
関連する問題