2014-03-31 84 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