2010-07-22 60 views
27

我該如何查詢其中有蘋果的圓滑的人? (下面是3個文件的集合)用Mongo查詢數組元素

_id => 1 
name => 'best smoothie' 
ingredients => Array 
    (
     [0] => apple 
     [1] => raspberry 
     [2] => orange 
     [3] => banana 
    ) 
_id => 2 
name => 'summer smoothie' 
ingredients => Array 
    (
     [0] => lemon 
     [1] => mint 

    ) 
_id => 3 
name => 'yogurt smoothie' 
ingredients => Array 
    (
     [0] => apple 
     [1] => blueberry 

    ) 

回答

47

如果你只需要運行下面的查詢MongoDB是足夠聰明弄清楚你想要做什麼。

{ ingredients: "apple" } 

蒙戈會看到成分是列表,只返回包含「蘋果」,在列表中的某些文件所在。

+1

非常感謝,也沒有想這將是這很容易xD – Gigala 2013-05-03 06:53:32

-5

爲什麼人們會爲冰沙製作可伸縮的應用程序?

db.find({「ingredients」:{$ in:「apple」}});

+2

我們愛他們:) – Devrim 2011-05-22 07:02:08

+5

這是一個無效的查詢。 $ in值必須是一個數組。例如: '''「成分」:{$ in:[「apple」,「cinnamon」,「sugar」]}} 將測試成分字段是否包含列出的3個值中的一個。 – 2012-04-17 05:41:18

-2

documentation

注:含陣列字段匹配條件運算符,如果只有一個 項匹配

因此,下面的查詢:

db.collection.find({ field: { $gt:0, $lt:2 } });

將匹配包含 以下領域的文檔:

{ field: [-1,3] }