如何解决从与数组元素中的字段匹配的文档中删除数组元素
{
"_id" : ObjectId("5f60ffc5aefd067a9ff9345c"),"_class" : "com.kalsym.smart.sms.data.MSASMS","number1" : NumberLong(923211105469),"numbers2" : [
{
"field1" : "20200915532E888","number2" : NumberLong(923018565627),"field2" : "abcd","datefield" : ISODate("2020-10-10T17:54:09.886Z")
},{
"field1" : "2020092570A6948","field2" : "efgh","datefield" : ISODate("2020-10-06T15:23:04.891Z")
},"field2" : "ijkl","datefield" : ISODate("2020-10-03T15:23:04.891Z")
}
],"optInCount" : 0
}
我要删除包含 datefield 值大于 2020-10-04
的数组索引执行命令文档后,必须像这样进行更新:
{
"_id" : ObjectId("5f60ffc5aefd067a9ff9345c"),"numbers2" : [
{
"field1" : "2020092570A6948","optInCount" : 0
}
解决方法
您可以使用updateMany()或update()
和$pull
删除匹配的记录表单数组,
db.collection.updateMany({},{
$pull: {
numbers2: { datefield: { $gt: ISODate("2020-10-04T00:00:00.000Z") } }
}
})
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。