web-dev-qa-db-ja.com

pymongo-他のクエリパラメータと一緒にフィールドに異なる値を設定するにはどうすればよいですか

私は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ではサポートされていないと思います。しかし、そのようなタスクをどのように達成できるかについては、任意のアイデアです。

32
Sushant Gupta

distinct呼び出しを行う必要があります カーソル上 コレクションではなくfindから返されます:

tags = db.mycoll.find({"category": "movie"}).distinct("tags")
55
JohnnyHK

pymongo(v1.1.1以降)は collection.distinct('key') をサポートします

19
Graham Russell