MongoDB只从数组中获取匹配的字段

时间:2014-04-10 12:07:47

标签: mongodb

我正在尝试进行distinc查询。我的收藏是readData

 {"searchPhrases" : [
            "cheap samsung mobile",
            "red nokia 2mp"
        ]
    }

  { "searchPhrases" : [
        "red peter england shirt",
        "redish lee pant"
    ]
}

我尝试了像db.readData.distinct("searchPhrases",{"searchPhrases":"cheap samsung mobile"});这样的查询 它让我看起来像[ "cheap samsung mobile", "red nokia 2mp" ],但我期待输出像[“廉价三星移动”]。我无法手动迭代它,因为它是搜索的重要数据。它的巨大收藏如此。他们用其他方式使用不同的吗?

1 个答案:

答案 0 :(得分:0)

你能使用聚合框架吗?如果是,你可以做下面的事情

db.readData.aggregate(
 { $match: {"searchPhrases": { $in : ["cheap samsung mobile"] } } },
 { $unwind: $searchPhrases }, 
 { $match: {"searchPhrases": { $in : ["cheap samsung mobile"] } } },
 { $group: { _id:"$searchPhrases" } }
)

这可能不是确切的代码。有关参考资料,请点击此处:

http://docs.mongodb.org/manual/reference/operator/aggregation/unwind/

http://docs.mongodb.org/manual/aggregation/