0

次のようなドキュメントがあります。

{
name: 'Nicholas',
friends : ['Amy', 'Joe', 'Amanda']
},
{
name: 'John',
friends : ['Amy', 'Amanda', 'Sam', 'Steve']
},

「ジョー」が友人配列にあるすべてのドキュメントを見つけたいと思います。

Mongo では、これは次のようになると思います。

db.people.find({ 'friends' : { $elemMatch : 'Joe' } }

しかし、MongoKit を使用して Python でこれを行うにはどうすればよいですか。

connection.People.find( ?? )
4

1 に答える 1

1

次の回答は、mongo shell での私のテストに基づいています -

コレクションにサンプルを作成しました。「Joe」でドキュメントを検索する方法は次のとおりです -

db.sample3.find({"friends":"Joe"})

出力は{ "_id" : ObjectId("5339c9ff0bb9bc1b3a5bf7a4"), "name" : "Nicholas", "friends" : [ "Amy", "Joe", "Amanda" ] }

クエリdb.sample3.find({"friends":"Amy"})の場合、出力は -

{ "_id" : ObjectId("5339c9ff0bb9bc1b3a5bf7a4"), "name" : "Nicholas", "friends" : [ "Amy", "Joe", "Amanda" ] }
{ "_id" : ObjectId("5339ca120bb9bc1b3a5bf7a5"), "name" : "John", "friends" : [ "Amy", "Amanda", "Sam", "Steve" ] }

クエリ {"friends":"Joe"} が機能します。したがって、Mongokit でも同じものを使用できるはずです。これが私が作成した文書です -

db.sample3.find().pretty()
{
    "_id" : ObjectId("5339c9ff0bb9bc1b3a5bf7a4"),
    "name" : "Nicholas",
    "friends" : [
        "Amy",
        "Joe",
        "Amanda"
    ]
}
{
    "_id" : ObjectId("5339ca120bb9bc1b3a5bf7a5"),
    "name" : "John",
    "friends" : [
        "Amy",
        "Amanda",
        "Sam",
        "Steve"
    ]
}
于 2014-03-31T21:38:52.843 に答える