【问题标题】:Querying array elements with Mongo使用 Mongo 查询数组元素
【发布时间】:2011-03-19 11:56:55
【问题描述】:

如何查询含有苹果的冰沙? (下面是一个包含 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

    )

【问题讨论】:

    标签: mongodb querying odm


    【解决方案1】:

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

    { ingredients: "apple" }
    

    Mongo 将看到成分是一个列表,并且只返回该列表中某些位置包含“苹果”的文档。

    【讨论】:

      【解决方案2】:

      来自documentation

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

      因此,以下查询:

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

      将匹配包含 以下字段:

      { field: [-1,3] }

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

        • 这是一个无效的查询。 $in 值必须是一个数组。例如:{"ingredient": {$in: ["apple","cinnamon","sugar"]}} 将测试成分字段是否包含列出的 3 个值之一。
        猜你喜欢
        • 2016-01-26
        • 1970-01-01
        • 1970-01-01
        • 2014-07-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-12-21
        相关资源
        最近更新 更多