1. ホーム
  2. javascript

[解決済み] MongoDB、配列からオブジェクトを削除する

2022-11-07 15:52:04

質問

博士。

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

配列から特定のオブジェクトを取り出す方法はありますか? 例えば、items配列からid23のitemオブジェクト全体を取り出すにはどうしたらよいでしょうか。

私は試しました。

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

しかし、私は'pull'を正しく使用していないことを確信しています。 私が理解するところでは、pullは配列からフィールドを引き出しますが、オブジェクトは引き出せません。

配列からオブジェクト全体を引き出す方法について何かアイデアがあれば教えてください。

おまけに、私はこれをmongoose/nodejsでやろうとしています。このタイプのものがmongoose APIにあるかどうかは分かりませんが、私はそれを見つけられませんでした。

どのように解決するのですか?

を試してみてください。

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