我正在使用pymongo并希望为字段设置不同的值,以便我也可以传递其他查询参数。例如,我有以下条目:
{
id = "my_id1"
tags: [tag1, tag2, tag3],
category: "movie",
}
{
id = "my_id2"
tags: [tag3, tag6, tag9],
category: "tv",
}
{
id = "my_id3"
tags: [tag2, tag6, tag8],
category: "movie",
}
所以我希望在电影类别下拥有所有不同的标签。任何人都可以指导我如何使用pymongo实现这一目标。在mongo javascript shell中,我发布了db.mycoll.distinct('tags',{category:“movie”}),它运行得很好。但是当我在pymongo中做同样的事情时,它会引发错误。我想pymongo不支持它。不知道怎样才能实现这样的任务。
答案 0 :(得分:53)
您必须从distinct
而非集合中返回find
来电on the cursor:
tags = db.mycoll.find({"category": "movie"}).distinct("tags")
答案 1 :(得分:17)
pymongo(自v1.1.1起)支持collection.distinct('key')
答案 2 :(得分:0)
实际上,有一个过滤器参数,您可以按照pymongo文档中所述的不同方法来传递
像这样
distinct_tags = db.mycoll.distinct("tags",{"category": "movie"})