你怎么在Mongokit做$ elemMatch?

时间:2014-03-31 18:52:47

标签: python mongodb mongokit

我有以下文件:

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

我想找到Joe' Joe'在朋友阵列中。

在Mongo,我想这会是:

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

但我如何使用MongoKit在Python中执行此操作:

connection.People.find( ?? )

1 个答案:

答案 0 :(得分: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" ] }

查询{"朋友":" 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"
    ]
}