用Mongo查询数组元素

时间:2010-07-22 11:05:16

标签: mongodb querying odm

如何查询包含苹果的冰沙? (下面是一个包含3个文件的集合)

_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

    )

3 个答案:

答案 0 :(得分:47)

如果您只是运行以下查询,MongoDB足够聪明,可以弄清楚您要做什么。

{ ingredients: "apple" }

Mongo会看到成分是一个列表,只返回包含“apple”的文档,其中包含该列表中的某些内容。

答案 1 :(得分:-2)

来自documentation

  

注意:包含数组的字段与条件运算符匹配,(如果只有一个)   项目匹配

     

因此,以下查询:

     

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

     

将匹配包含该文档的文档   以下字段:

     

{ field: [-1,3] }

答案 2 :(得分:-6)

为什么人们为冰沙编写可扩展的应用程序?

db.find({“ingredients”:{$ in:“apple”}});