2014-03-31 48 views
0

我有这样的文件:

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

,我想找到的所有文件,其中“乔”是朋友阵列英寸

在蒙戈我想这将是:

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

但我要如何做到这一点在Python与MongoKit:

connection.People.find(??) 

回答

1

以下的答案是基于我在蒙戈外壳测试 -

我刚刚在我的收藏中创建了一个样本。这里是你可以搜索具有 “乔” 的文件 -

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" ] } 

查询{ “朋友”: “乔”}的作品。所以,你应该可以在Mongokit中使用它。 这是我创建的文档 -

db.sample3.find().pretty() 
{ 
    "_id" : ObjectId("5339c9ff0bb9bc1b3a5bf7a4"), 
    "name" : "Nicholas", 
    "friends" : [ 
     "Amy", 
     "Joe", 
     "Amanda" 
    ] 
} 
{ 
    "_id" : ObjectId("5339ca120bb9bc1b3a5bf7a5"), 
    "name" : "John", 
    "friends" : [ 
     "Amy", 
     "Amanda", 
     "Sam", 
     "Steve" 
    ] 
} 
+0

这不是MongoKit。 – nickponline

+0

没关系。我要证明的一点是你不需要$ elemMatch。一个简单的{“朋友”:“乔”}会做。 – hellboy

+0

我的错误,相当正确。 – nickponline