gpt4 book ai didi

node.js - 从 mongoose 中等效的数组 mongodb 中删除一个项目

转载 作者:可可西里 更新时间:2023-11-01 09:27:21 27 4
gpt4 key购买 nike

文档:

{
"_id" : ObjectId("5399ba7f8035beb2d4717cc0"),
"listName" : "firstList",
"items" : [
{
"pName" : "iPad ",
"pDesc" : "iPad aiiir",
"ownerID" : ObjectId("5399b596c501732dd4d13923"),
"_id" : ObjectId("5399e2cc2d7b0349d89d2b44"),
"dateAdded" : ISODate("2014-06-12T17:26:36.282Z")
},
{
"pName" : "iPhone ",
"pDesc" : "5s",
"ownerID" : ObjectId("5399b596c501732dd4d13923"),
"_id" : ObjectId("5399e2cc2d7b0349d89d2b44"),
"dateAdded" : ISODate("2014-06-12T17:26:36.282Z")
}
]}

我想从“数组”项目中删除一个项目不知道文档的 _id 只有元素的 id,我有这个查找元素的查询,它在 mongodb shell 中工作但在 mongoose 中不工作,

db.lists.find( {items:
{$elemMatch:{'_id':ObjectId("5399b596c501732dd4d13923")}}} ,
{"items.$":1});

你知道为什么吗?

你能给我 mongoose 中的等价物吗?

我应该如何从只知道其 _id 的列表中提取项目?

最佳答案

这应该可以解决问题:

db.lists.update(
{},
{ $pull: {"items": {"_id" :ObjectId("5399e2cc2d7b0349d89d2b44") }},
{ multi: true }})

对于集合中的每个文档({} 表示空查询),它会删除每个具有提供的 _id 的项目(在 items大批)。如果没有 multi 选项,只有找到的第一个文档会受到影响

关于node.js - 从 mongoose 中等效的数组 mongodb 中删除一个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24287738/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com