您可以使用不同的查询来执行以下操作:
db.scores.distinct("target_user", {"seen":1})
使用聚合框架运行不同的查询如下所示。
将以下记录插入到 MongoDB 中。
db.scores.insert({target_user:"a",seen:1, name:"name1"})
db.scores.insert({target_user:"a",seen:0, name:"name1"})
db.scores.insert({target_user:"b",seen:1, name:"name2"})
db.scores.insert({target_user:"c",seen:1, name:"name3"})
db.scores.insert({target_user:"d",seen:0, name:"name4"})
然后,通过运行以下聚合查询,您可以找到不同的 target_user's where saw = 1。请注意,它还将返回名称字段。
db.scores.aggregate(
{$match:{seen:1}},
{$group: {_id : "$target_user", name: {$first:"$name"}}},
{$group : {_id : "$_id", name: {$first:"$name"}}}
);
那么结果将如下:
"result" : [
{"_id" : "a","name" : "name1"},
{"_id" : "b","name" : "name2"},
{"_id" : "c","name" : "name3"}
]