在另一个数组中搜索字符串,如mongodb中的字符串
我想在mongodb中进行查询,以便在另一个字符串中搜索字符串。 现在,用例是我有如下文档:在另一个数组中搜索字符串,如mongodb中的字符串,mongodb,mongodb-query,Mongodb,Mongodb Query,我想在mongodb中进行查询,以便在另一个字符串中搜索字符串。 现在,用例是我有如下文档: { "names":"[John,Mike,Stephen,Rock]" } 现在我想制作一个过滤器,用于搜索: 案例1:约翰是否以他的名字出现 案例2:如果John和Mike都在这条线上 我对mongodb很陌生。我浏览了很多帖子,但到目前为止还没有得到任何令人满意的结果。有些正在使用正则表达式或文本搜索。是否有人可以帮助进行查询使用$in运算符匹配MongoDb中数组中的值: 假设集合清单
{
"names":"[John,Mike,Stephen,Rock]"
}
现在我想制作一个过滤器,用于搜索:
我对mongodb很陌生。我浏览了很多帖子,但到目前为止还没有得到任何令人满意的结果。有些正在使用正则表达式或文本搜索。是否有人可以帮助进行查询使用$in运算符匹配MongoDb中数组中的值: 假设集合清单包含包含字段标记的文档,如下所示:
{ _id: 1, item: "abc", qty: 10, tags: [ "school", "clothing" ]}
然后,下面的find()操作将获取tags字段,该字段包含至少一个元素与“appliances”或“school”匹配的数组
对于您的用例1:
db.users.find({names : "John"});
对于您的用例2:
db.users.find({ names: {
$in: ["John", "Mike"]
} });
您可以尝试以下使用正则表达式模式的查询: 案例1:检查
名称
字符串字段包含一个单词John
db.collection.find({ names: /John/})
案例2:检查名称
字符串字段同时包含John
和Mike
单词
db.collection.find({ names: {$all : [/John/, /Mike/]}})
我建议在名称
字段上建立索引,如果可能,尝试使用
Ref:但这里不是数组,而是字符串,在这种情况下使用in进行搜索也会起作用吗?哇,我们如何检查相反的情况,即John不在姓名中?你也能帮忙吗@Anshul:您需要使用
$nin
而不是$all
。类似这样的db.collection.find({names:{$nin:[/John/]}})
。好的,很好,非常感谢您的帮助!!:)
db.collection.find({ names: {$all : [/John/, /Mike/]}})