2014-04-10 61 views
0

我正在嘗試使用distinc查詢。我的收藏是READDATAMongoDB只獲得數組中的匹配字段

{"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" ]但我期待像[「低價三星手機」]輸出。我無法手動迭代它,因爲它的搜索重要數據。它的巨大收藏如此。他們的任何其他方式使用不同的?

+0

你有沒有看着['$ elemMatch'(http://docs.mongodb.org/manual/reference/operator/projection/elemMatch/)投影算子? –

回答

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/

相關問題