简体   繁体   English

deleteMany in mongodb 带过滤器

[英]deleteMany in mongodb with filter

Orders
id:1101, supplier:"000822",article:004970,stock:150
id:1102, supplier:"000822",article:004975,stock:100
id:1103, supplier:"000822",article:004650,stock:120
id:1104, supplier:"000822",article:004655,stock:130
id:1105, supplier:"000822",article:004975,stock:140
id:1106, supplier:"000823",article:004980,stock:150
id:1107, supplier:"000823",article:004990,stock:110

In the above data, I want to delete 2 records and with the filter supplier and article.在上面的数据中,我想删除 2 条记录并过滤供应商和文章。

So I do:所以我这样做:

const filter = "{ supplier: '000822', article: 004970}, {supplier: '000822', article: 004975}";
Orders.deleteMany(filter)
.then((result) => {
  console.log("result: " + result.deletedCount);
    ...
})
.catch(err => {
  ...
});

I get error: {"message":"Parameter "filter" to deleteMany() must be an object, got { supplier: '000822', article: 004970}, {supplier: '000822', article: 004975}"}我收到错误消息:{“消息”:“deleteMany() 的参数“过滤器”必须是 object,得到 { 供应商:'000822',文章:004970},{供应商:'000822',文章:004975}”}

What do I wrong?我做错了什么?

Wrap the conditions in a top level $or , using an object instead of a string, like将条件包装在顶级$or中,使用 object 而不是字符串,例如

const filter = {"$or": [
                        {supplier: '000822', article: 004970}, 
                        {supplier: '000822', article: 004975}
               ]};

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM