mongodb搜索文档的单个键

时间:2015-05-05 11:01:46

标签: mongodb

我有mongodb文档,数据如下:

[{
  "name": "Robin singh",
  "developer": "java",
  "address": "Robin Singh,Mohali",
  "search_string": ["Robin", "Singh", "java"]
}, {
  "name": "Rohan singh",
  "developer": "java",
 "address": "Rohan Singh,Mohali",
  "search_string": ["Rohan", "Singh", "java"]
}]

我想与名为 Rohan singh 的开发人员 java 搜索文档,我使用了此查询:

{"search_string":{"$all":["Robin","Singh","java"]}}

但我得到了两个结果。

2 个答案:

答案 0 :(得分:0)

尝试:

db.testcollection.aggregate([
    { $match: {"search_string":{"$all":["Robin","Singh","java"]}} },
    { $group: { _id: "$name"} }
])

答案 1 :(得分:0)

如果您同时拥有namedeveloper,那么您只需使用查询查询 -

db.collection.find({"name":"Rohan singh", "developer":"java"})

此外,如果您想检查search_string何时包含您在$all传递的确切参数,那么 - 您需要使用$size$all运算符的组合来得到理想的结果。 size必须是$ all中使用的参数数量。在这里,你必须检查search_string的大小到$ all中的参数数量,这样它才能搜索给定参数($ all),只搜索大小与参数数量匹配的search_string

以下查询可能对您有所帮助。

db.collection.find({
"name":"Rohan singh",
"search_string": {
  $all: ["Rohan", "singh","java"]
},
"search_string": {
$size: 3 // This is the number of param you pass in $all
}
}).pretty()