2016-04-26 193 views
0

我正在編寫一個代碼,在其中找到這種類型的數據庫(我使用的是pymongo)。 我怎樣才能將這些數組內的wishlist字段歸屬於python數組?將mongodb數組轉換爲python數組

或者,我如何搜索我的數據庫中的wishlist字段內的數組內的值。例如: - 我想找到有所有的ID,比如說,["feldon","c15", "sp"]他們wishlists

{ 
    "_id" : "david", 
    "password" : "azzzzzaa", 
    "url" : "url3", 
    "old_url" : "url3", 
    "new_url" : ["url1", "url2"], 
    "wishlist" : [ 
     ["all is dust", "mm4", "nm"], 
     ["feldon", "c15", "sp"], 
     ["feldon", "c15", "sp"], 
     ["jenara", "shards", "nm"], 
     ["rafiq", "shards", "nm"] 
    ] 
} 

回答

1

您可以使用distinct如果你的子表元素都完全以相同的順序。

db.collection.distinct("_id", {"wishlist": ["feldon", "c15", "sp"]}) 

如果沒有,您需要使用aggregate方法和$redact運營商。

db.collection.aggregate([ 
    {"$redact": { 
     "$cond": [ 
      {"$setIsSubset": [ 
       [["feldon","c15", "sp"]], 
       "$wishlist" 
      ]}, 
      "$$KEEP", 
      "$$PRUNE" 
     ] 
    }}, 
    {"$group": { 
     "_id": None, 
     "ids": {"$push": "$_id"} 
    }} 
])