查找具有特定字段内容的用户文档

我有一些看起来像这样的文件:

{
    "_id" : <object id>,"user_id" : 1,"country" : "NZ","file_name" : "hi.zip","extension" : "zip","mime_type" : "application/zip","size" : 226679,"location" : "https://somecontainer.blob.core.windows.net/userdata/m/hh1/hi.zip"
}

我有两个用户,user_id分别是12,而file_name不同,我想做的就是用{{1 }},然后将其删除。

目前我正在这样做:

user_1: 1

还有更多的MongoDB方式吗?

我尝试做:

file_name: ['hi.zip','hello.zip']

这只是打印所有文档,我也尝试过for file_name in db.collection.find({'user_id': 3}): if file_name['file_name'] in ['hi.zip','hello.zip']: db.collection.delete_one({'_id': file_name['_id']})

zvee2 回答:查找具有特定字段内容的用户文档

您可以使用$in运算符进行过滤。 Mongodb将匹配其字段包含您要查找的数组中至少一个元素的文档。 see here。因此您的查询将如下所示:

db.collection.find({user_id: 3,file_name: {$in: ['hi.zip','hello.zip']}})

甚至更好的是,您可以在mongodb中使用deleteMany()方法将其全部删除。因此,您不必在代码中再次遍历它。

db.collection.deleteMany({user_id: 3,'hello.zip']}})
本文链接:https://www.f2er.com/3104417.html

大家都在问