"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > MongoDB의 배열에서 객체를 어떻게 제거합니까?

MongoDB의 배열에서 객체를 어떻게 제거합니까?

2024년 11월 19일에 게시됨
검색:954

How do I remove an object from an array in 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: { items: { id: 23 } } },
    false, // Upsert
    true, // Multi
);

이 명령은 배열에서 항목을 제거하여 문서를 업데이트합니다. 쿼리는 _id 필드를 사용하여 문서를 지정하고 $pull 연산자는 항목 배열을 대상으로 합니다. $pull 작업 내에서 제거할 개체와 일치하는 쿼리를 지정할 수 있습니다. 이 경우 객체를 id: 23과 일치시킵니다.

Mongoose/Node.js 구현

Mongoose에서는 다음을 사용하여 배열에서 객체를 제거할 수 있습니다. pull() 메서드:

const Model = mongoose.model('Model', new mongoose.Schema({
  items: [{
    id: Number,
    name: String
  }]
}));

Model.update(
  { '_id': '5150a1199fac0e6910000002' },
  { $pull: { items: { id: 23 } } },
  { multi: true }, // Update all matching documents
  (err, result) => { if (!err) console.log(result); }
);

이 코드는 지정된 _id와 일치하는 모든 문서의 항목 배열에서 ID가 23인 항목을 제거합니다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3