MongoDB:不同的元组

MongoDB: distinct tuples

假设有一个 MongoDB 文档的集合,其结构如下:

{
    id_str:     "some_value",
    text:       "some_text",
    some_field: "some_other_value"
}

我想过滤此类文档以获得具有不同文本值的文档。

我从 MongoDB 文档中了解到如何使用 distinct 操作从集合中提取唯一字段值。因此,通过执行以下查询:

db.myCollection.distinct("text")

我将获得一个包含不同文本值的数组:

["first_distinct_text", "second_distinct_text",...]

然而,这不是我想要得到的结果。相反,我想要以下内容:

{ "id_str": "a_sample_of_id_having_first_distinct_text", 
  "text": "first_distinct_text"}
{ "id_str": "a_sample_of_id_having_second_distinct_text", 
  "text": "second_distinct_text"}

我不确定这是否可以通过单个查询完成。

我找到了一个 similar question,但是它并没有完全解决我的问题。

你有什么解决这个问题的提示吗?

谢谢。

您应该考虑使用 $group 阶段制作一个 aggregate query,并可能使用 $first 运算符。

可能类似于:

db.myCollection.aggregate([{ $group : { _id : { text: "$text"},
                                        text: { $first: "$id_str" }
                                      }
                           }])

尝试:

 db.myCollection.aggregate({$group: {_id: {'text': "$text", 'id_str': '$id_str'}}})

这里有更多信息:http://docs.mongodb.org/manual/reference/method/db.collection.aggregate/