我想要查询并从存储设施 ID 数组的设施中删除一个 ID。 我的架构。
{
"_id" : ObjectId("zzzzzzzzzzzzzzzzzzzzz"),
"account" : {
"createdOn" : ISODate("2016-02-19T10:31:32.918Z"),
},
"appointments" : [],
"facilities" : [
ObjectId("vvvvvvvvvvvvvvvvvvvvvvvvvvvv"),
ObjectId("xxxxxxxxxxxxxxxxxxxxxxxxxxxxx")
我尝试了这个,但它删除了整个架构?
this.remove({ '_id': id, facilities : { "$in" : [facilityId]} })
此处,id 是该架构的 ID,facilityId 是设施的 ID。任何帮助将不胜感激?
最佳答案
您想保留文档并从“facilities”数组中删除一个元素吗?是这个吗?
如果是这样,您不想“删除”,而是“更新”您的文档。
它会以某种方式进行:
update(
{
"_id": id
},
{
$pullAll:
{
"facilities": [facilityId]
}
}
)
PS:我假设当你想要修改它时,你已经有了你的文档ID。如果没有,您可以通过“设施”字段进行查询(使用 $in 运算符,就像您所做的那样),在这种情况下,您最好在其上有一个索引。正如其他答案提到的那样,您也可以在查询字段上有一个空文档,但这往往表现很差。
关于node.js - MongoDb 查询匹配并删除数组中的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35555167/