mongodb - 在我的 MongoDB 子文档中查找具有一定数量字段的结果

标签 mongodb mongodb-query

我想查询一个子文档,其中结果必须指定所有字段并且没有其他。这可能吗?如果是这样的话?

例如:

我想要这样的查询:

db.users.find({ 
    "pref.no_popup": true, 
    "pref.font_large": false, 
    "pref": { "$size", 2 }});

要匹配这个:

{
  "user": "Ed",
  "pref": {
    "no_popup": true,
    "font_large": false
  }
}

但不是这个:

{
  "user": "James",
  "pref": {
    "no_popup": true,
    "font_large": false,
    "font_red": true
  }
}

我意识到 $size运算符是为数组设计的,那么我该如何为子文档做类似的事情呢?

请注意,我确实尝试不使用点符号来查询确切的字段存在,但后来我遇到了排序问题。

最佳答案

存在这种“子文档完全匹配”的情况。 Here , 在页面中搜索引用的文本。

我认为您的查询应该是:

db.users.find({ 
    "pref" : {
        "no_popup" : true,
        "font_large" : false
    } });

关于mongodb - 在我的 MongoDB 子文档中查找具有一定数量字段的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21992131/

相关文章:

database - MongoDB聚合: How to return only the values that don't exist in all documents

带有副本集的 Mongodb 在 docker compose 中

java - Mongodb查询匹配以空格分隔的单词

arrays - MongoDB $addToSet 替换

javascript - 如何将数组中的日期字符串更新为mongoDB中的日期格式?

javascript - 如何从 Mongoose 的集合中排除一个特定字段?

mongodb - 返回嵌入式数组的联合

MongoDB:根据同一对象上的其他字段将字段添加到数组中的所有对象?

node.js - 使用node从mongodb中的文档对象获取key

java - 使 mongoClient 对象/任何对象在应用程序中可用