2017-05-17 7 views
0

これは私が持っているオブジェクトです。サブ文書を更新し、サブ文書内の配列の単一のオブジェクトを削除する方法?

{ 
    "_id": ObjectId("590985b1859aefea4a39982f"), 
    "comment": [{ 
    "created_at": 1493880257678.0, 
    "comment": "12345", 
    "user_id": ObjectId("58edd98d40627c492c8689c5"), 
    "_id": ObjectId("590acdc1141b16c6521b9140"), 
    "modified": 1493880257678.0, 
    "assigned_to": null 
    }, { 
    "created_at": 1493880257678.0, 
    "comment": "12345", 
    "user_id": ObjectId("5906c50c1be98711121edf2b"), 
    "_id": ObjectId("590acdc1141b16c6521b9140"), 
    "modified": 1493880257678.0, 
    "assigned_to": null 
    }, { 
    "created_at": 1493880257678.0, 
    "comment": "12345", 
    "user_id": ObjectId("58edd98d40627c492c8689c5"), 
    "_id": ObjectId("590acdc1141b16c6521b9140"), 
    "modified": 1493880257678.0, 
    "assigned_to": null 
    }] 
} 

私はあなたが$pullでfindOneAndUpdateを使用することができますuser_id(58edd98d40627c492c8689c5)

+0

あなたが_a少しをする質問を編集することがありますneater_? – evolutionxbox

答えて

1

コメントのサブドキュメントを削除します。

このようなクエリを作成します。あなたが使用して、しかし、ここで私がrobomongoにやった例のテストでされているものをクライアントまたはドライバー

findOneAndUpdate(
{_id: <id of the document>}, 
{$pull: {comment: {user_id: <user_id>}}}, 
{multi:true} 
) 

わからない、コレクション名は「文書」

db.getCollection('documents').findOneAndUpdate(
{_id: new ObjectId("590985b1859aefea4a39982f")}, 
{$pull: 
    {comment:{user_id : new ObjectId("58edd98d40627c492c8689c5")}} 
}, 
multi:true}) 
関連する問題