복붙노트

[MONGODB] MongoDB의 배열로부터 제거 개체

MONGODB

MongoDB의 배열로부터 제거 개체

의사:

{
   _id: 5150a1199fac0e6910000002,
   name: 'some name,
   items: [{
      id: 23,
      name: 'item name 23'
   },{
      id: 24,
      name: 'item name 24'
   }]
}

배열에서 특정 개체를 끌어 할 수있는 방법이 있습니까? 즉 어떻게 항목 배열의 ID (23) 전체 항목 개체를 끌어 않습니다.

나는 시도했다 :

db.mycollection.update({'_id': ObjectId("5150a1199fac0e6910000002")}, {$pull: {id: 23}});

그러나 나는 확신 내가 제대로 '풀'을 사용하지 오전입니다. 내가 풀 배열이 아닌 객체에서 필드를 끌어 이해하는 바로는.

모든 아이디어를 어떻게 배열의 전체 개체의 출력을 당깁니다.

보너스로 내가 잘하지 않도록 것은 이런 종류의 몽구스 API에 있지만 나는 그것을 찾을 수없는 경우로, 몽구스 / nodejs에서이 작업을 수행하려합니다.

해결법

  1. ==============================

    1.시험..

    시험..

    db.mycollection.update(
        {'_id': ObjectId("5150a1199fac0e6910000002")}, 
        { $pull: { "items" : { id: 23 } } },
    false,
    true 
    );
    
  2. ==============================

    2.나는 문서 등이있다

    나는 문서 등이있다

    나는 주소 배열에서 삭제 주소로이

    인터넷에 많이 검색 한 후 나는 해결책을 발견

    Customer.findOneAndUpdate(query, {$pull: {address: addressId}}, function(err, data){
            if(err) {
              return res.status(500).json({'error' : 'error in deleting address'});
            }
    
            res.json(data);
    
          });
    
  3. ==============================

    3.

    my database:->
            {
           "_id" : ObjectId("5806056dce046557874d3ab18"),
           "data" : [ 
               {
                   "id" : 1
               }, 
               {
                   "id" : 2
               }, 
               {
                   "id" : 3
               }
           ]
        }
    
    MY QUERY:->
    db.getCollection('play_table').update({},{$pull:{"data":{"id":3}}},{multi:true}
    OutPut:->
    {
      "_id" : ObjectId("5806056dce046557874d3ab18"),
           "data" : [ 
               {
                   "id" : 1
               }, 
               {
                   "id" : 2
               }
           ]
        }
    
  4. ==============================

    4.데이터를 제거하기 위해 $ 풀을 사용하여

    데이터를 제거하기 위해 $ 풀을 사용하여

    return this.mobiledashboardModel
    .update({"_id": args.dashboardId}, { $pull: {"viewData": { "_id": widgetId}}})
    .exec()
    .then(dashboardDoc => {
         return {
            result: dashboardDoc
         }
    });
    
  5. ==============================

    5.당신은 또한 그것을 시도 할 수 있습니다 :

    당신은 또한 그것을 시도 할 수 있습니다 :

    db.getCollection('docs').update({ },{'$pull':{ 'items':{'id': 3 }}},{multi:true})
    
  6. from https://stackoverflow.com/questions/15641492/mongodb-remove-object-from-array by cc-by-sa and MIT license