node.js - mongodb中的deleteMany()不删除文档
问题描述
我在收藏列表中有以下记录
db.ilists.find()
{ "_id" : ObjectId("5efb10f25372d01d549954b1"), "name" : "hello user", "__v" : 0 }
{ "_id" : ObjectId("5efb10f25372d01d549954b2"), "name" : "click + to add items to the list", "__v" : 0 }
{ "_id" : ObjectId("5efb10f25372d01d549954b3"), "name" : "<---click the checkbox to deletet item in the list", "__v" : 0 }
{ "_id" : ObjectId("5efb170a32b1290c64950999"), "__v" : 0 }
{ "_id" : ObjectId("5efb17790d9ff700204c43c2"), "__v" : 0 }
我有两个空文档,我正在使用 deleteMany 删除它们,但我得到以下
> db.ilists.deleteMany({"_id":"5efb170a32b1290c64950999"},{"_id":"5efb17790d9ff700204c43c2"})
{ "acknowledged" : true, "deletedCount" : 0 }
如您所见,已删除计数为 0,并且这些文档没有被删除,对此有何帮助?
解决方案
根据文档,deleteMany
期望过滤器查询作为第一个参数。在您的情况下,由于第一个参数确实看起来像一个查询,因此它没有按预期工作。
您可以尝试使用以下方法:
db.ilists.remove( { _id : { $in: [
ObjectId("5efb170a32b1290c64950999"),
ObjectId("5efb17790d9ff700204c43c2"),
] } } );
或者,如果您打算删除所有空文档,您可以deleteMany
按如下方式更新您的查询:
db.ilists.deleteMany({ name: {$exists: false} })
推荐阅读
- openlayers - arcmap 10.6 shapefile 不显示在 OpenLayers 4.6.5 中
- elasticsearch - 查找 lucene 中匹配文档的出现次数
- asp.net-core - 创建自定义 Auth0 登录页面
- ios - ECDSA secp256k1 密钥对生成和在 Swift 上签名
- php - 如何使用 $_POST 或 $_GET 根据 HTML 表单过滤数据
- php - 来自sqlite参考中的php函数的变量
- php - Php Ajax如何将数据同时插入两个表
- python - Python 正则表达式搜索网络掩码
- c++ - 无法显示和隐藏 Windows 10 屏幕键盘 (osk.exe)
- c++ - 函数中的注释参数