如何通过它们的值mongodb唯一地搜索字段?

时间:2018-03-13 22:05:31

标签: javascript node.js mongodb

实际上我正试图通过field_value进行独特的搜索。

例如:

{
"_id" : ObjectId("5aa83007d5f5f84350af30c7"),
"_tag" : "hi"
},
{
"_id" : ObjectId("5aa83007d5f5f80450af30c8"),
"_tag" : "hello"
 },
 {
"_id" : ObjectId("6aa83007d5f5f80450af30c8"),
"_tag" : "hello"
 },
 {
"_id" : ObjectId("5aa83007d5f5f80450ar30c7"),
"_tag" : "bye"
 },
 {
"_id" : ObjectId("5aa83117d5f5f80450ar30c7"),
"_tag" : "bye"
 }

在此上下文中,以下查询返回[“hi”,“hello”,“bye]

查询:

 db.collection("tags").distinct("_tag",function(err, result) {
                        if(err) throw err;
                          console.log(result)

                        db.close();
                    });

但我要问的是我如何能够通过“喜”或“你好”之类的价值等等来暗示?

1 个答案:

答案 0 :(得分:1)

您可以尝试使用$in仅保留所需的标记,然后使用$group $addToSet来获取唯一值:

db.tags.aggregate([
    { $match: { "_tag": {$in:["hi","hello"] } } },
    { $group: { _id: null, _tags: { $addToSet: "$_tag" } } }
])