仅返回投影数组子文档中的特定字段

所有工人都是必不可少的

我正在查看有关$$elemMatch预测的MongoDB文档我试图弄清楚如何仅返回投影数组的字段的子集,但似乎无法弄清楚。

相关文章:

假设我test收藏了以下文件

{
    "_id": "A",
    "array": [
        {"key": 1, "name": "foo", "data": {}},
        {"key": 2, "name": "bar", "data": {}}
    ],
    "extra": {}
},
{
    "_id": "B",
    "array": [
        {"key": 3, "name": "spam", "data": {}},
        {"key": 4, "name": "eggs", "data": {}}
    ],
    "extra": {}
}

我实际上要执行的查询是:

db.test.findOne({"array.key": 1}, {"array.$.name": 1, "extra": 1})

我希望它只返回name数组keywas中的子文档下的内容1例如,

{
    "_id": "A",
    "array": [
        {"name": "foo"}
    ],
    "extra": {}
}

但是,如果执行该查询,则会得到以下信息:

{
    "_id": "A",
    "array": [
        {"key": 1, "name": "foo", "data": {}}
    ],
    "extra": {}
}

这与执行查询相同:

db.test.findOne({"array.key": 1}, {"array.$": 1, "extra": 1})

我还尝试了以下结果相同的结果:

db.test.findOne({"array.key": 1}, {"array.$": 1, "array.name": 1, "extra": 1})

有没有一种方法只返回字段的子集array.$而不是整个子文档?

本·格兰伯

您是否专门尝试在不使用聚合的情况下执行此操作?

db.test.aggregate([{$unwind:"$array"},
                   {$match:{"array.key":1}},
                   {$project:{"array.name":1, extra:1}}])

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从数组中的文档投影特定字段?

来自分类Dev

在 Mongoose 中过滤子文档数组并仅返回匹配的元素

来自分类Dev

如何获取嵌入到数组中的特定文档的某些字段的投影?

来自分类Dev

基于非数组字段在mongo文档中投影数组值

来自分类Dev

仅基于子文档_id返回子文档,子文档_id是mongodb文档的array字段的项

来自分类Dev

在MongoDB中仅返回子文档

来自分类Dev

子文档数组上的 MongoDB 查询和投影也返回另一个文档的数组

来自分类Dev

MongoDB:汇总子文档数组中的字段

来自分类Dev

连接子文档数组中的字段

来自分类常见问题

使用MongoDB Java仅检索数组子文档字段的值

来自分类Dev

如何编写mongodb查询以仅查询文档数组中的特定字段?

来自分类Dev

动态mongo投影-使用文档中的字段确定投影的投影

来自分类Dev

在文档数组中查找包含字段的子文档

来自分类Dev

MongoDB聚合:将单独的文档字段投影到单个数组字段中

来自分类Dev

MongoDB聚合:将单独的文档字段投影到单个数组字段中

来自分类Dev

在Mongoose中,如何排除在特定字段中具有共同价值但仅返回第一个文档的文档?

来自分类Dev

如何在MongoDb中查找与数组中的字段和子文档字段匹配的文档

来自分类Dev

在mongodb中排除子文档数组中的字段

来自分类Dev

在嵌套对象的数组字段中按ID查找子文档

来自分类Dev

将字段插入子文档数组中。意外行为

来自分类Dev

MongoDB检查数组的子文档中是否存在字段

来自分类Dev

mongodb $ lookup数组子文档中的单个字段

来自分类Dev

如何按大于条件的子文档数组中的字段查询?

来自分类Dev

如何更改子文档数组中的字段类型

来自分类Dev

在mongodb中排除子文档数组中的字段

来自分类Dev

有没有办法在mongodb的子文档数组中匹配2个特定的字段值?

来自分类Dev

如何在mongo shell查询中仅投影嵌套数组的匹配字段

来自分类Dev

如何在mongo中过滤子数组并返回文档

来自分类Dev

在MongoDB文档子文档数组中插入和返回子文档ID

Related 相关文章

  1. 1

    如何从数组中的文档投影特定字段?

  2. 2

    在 Mongoose 中过滤子文档数组并仅返回匹配的元素

  3. 3

    如何获取嵌入到数组中的特定文档的某些字段的投影?

  4. 4

    基于非数组字段在mongo文档中投影数组值

  5. 5

    仅基于子文档_id返回子文档,子文档_id是mongodb文档的array字段的项

  6. 6

    在MongoDB中仅返回子文档

  7. 7

    子文档数组上的 MongoDB 查询和投影也返回另一个文档的数组

  8. 8

    MongoDB:汇总子文档数组中的字段

  9. 9

    连接子文档数组中的字段

  10. 10

    使用MongoDB Java仅检索数组子文档字段的值

  11. 11

    如何编写mongodb查询以仅查询文档数组中的特定字段?

  12. 12

    动态mongo投影-使用文档中的字段确定投影的投影

  13. 13

    在文档数组中查找包含字段的子文档

  14. 14

    MongoDB聚合:将单独的文档字段投影到单个数组字段中

  15. 15

    MongoDB聚合:将单独的文档字段投影到单个数组字段中

  16. 16

    在Mongoose中,如何排除在特定字段中具有共同价值但仅返回第一个文档的文档?

  17. 17

    如何在MongoDb中查找与数组中的字段和子文档字段匹配的文档

  18. 18

    在mongodb中排除子文档数组中的字段

  19. 19

    在嵌套对象的数组字段中按ID查找子文档

  20. 20

    将字段插入子文档数组中。意外行为

  21. 21

    MongoDB检查数组的子文档中是否存在字段

  22. 22

    mongodb $ lookup数组子文档中的单个字段

  23. 23

    如何按大于条件的子文档数组中的字段查询?

  24. 24

    如何更改子文档数组中的字段类型

  25. 25

    在mongodb中排除子文档数组中的字段

  26. 26

    有没有办法在mongodb的子文档数组中匹配2个特定的字段值?

  27. 27

    如何在mongo shell查询中仅投影嵌套数组的匹配字段

  28. 28

    如何在mongo中过滤子数组并返回文档

  29. 29

    在MongoDB文档子文档数组中插入和返回子文档ID

热门标签

归档