Mongodb 删除值不是数组的文档
mongodb似乎允许使用相同的语法来删除值为单个值的文档,并且每当值出现在集合中时: 这个Mongodb 删除值不是数组的文档,mongodb,Mongodb,mongodb似乎允许使用相同的语法来删除值为单个值的文档,并且每当值出现在集合中时: 这个 db.SomeCollection.deleteMany({UserId:12345}) 可以影响{UserId:12345}和{UserId:[123456789587897]} 我知道这种模式并不理想;我们使用一个单数的UserIdprop来表示单个id int和一个int数组。不过,如果你明白我的意思的话,我继承了一个利用mongodb动态特性的数据库 执行deleteMany查询,指定我只想删除
db.SomeCollection.deleteMany({UserId:12345})代码>
可以影响{UserId:12345}
和{UserId:[123456789587897]}
我知道这种模式并不理想;我们使用一个单数的UserId
prop来表示单个id int和一个int数组。不过,如果你明白我的意思的话,我继承了一个利用mongodb动态特性的数据库
执行deleteMany
查询,指定我只想删除值为单个整数的文档,最安全的方法是什么?可以使用运算符检查字段类型,但在这种情况下并不明显。您无法检查UserId
是否为double
类型,因为MongoDB将指示double数组也是double(更多)。因此,您需要反转逻辑,检查您试图删除的文档是否不是数组(键入4
):
db.SomeCollection.deleteMany({ $and: [ { UserId: 12345 }, { UserId: { $not: { $type: 4 } } } ] })