【问题标题】:are the following mongodb queries equivalent?以下 mongodb 查询是否等效?
【发布时间】:2012-11-27 22:46:10
【问题描述】:

所以我有下面的查询,它不应该返回任何东西。

db.food.find({ingredient : {name : {$ne : "Kahlua"}}});  //empty data

但是,我认为它的等价物确实输出了正确的信息:

db.food.find({"ingredient.name" : {$ne : "Kahlua"}});   //gives correct data

我对上述 2 个查询使用 BrowserShell 进行了尝试,对于简单的函数和查询,它并没有给我带来太多问题。

【问题讨论】:

    标签: mongodb


    【解决方案1】:

    不,它们不一样。

    db.food.find({"ingredient.name" : {$ne : "Kahlua"}}); 
    

    是说“找到成分名称不等于 Kahlua 的地方”,而...

    db.food.find({ingredient : {name : {$ne : "Kahlua"}}});
    

    是说“查找成分子对象仅包含名称属性的位置,该名称不等于 Kahlua”。因此,在这种情况下,您实际上是在对整个主题执行搜索。

    这里可能会更好地解释 - dot notation vs subobjects

    【讨论】:

    猜你喜欢
    • 2014-04-19
    • 1970-01-01
    • 2015-05-28
    • 2020-09-16
    • 2020-09-24
    • 2013-09-04
    • 2022-01-11
    • 2011-12-09
    • 1970-01-01
    相关资源
    最近更新 更多