猫鼬检索每种类型的一个文档

丹麦人

我有一个batchIds数组,比如说[001, 002,003,...]还可以想象我的收藏是这样的:

{ batchId: 001, data: ... }
{ batchId: 001, data: ... }
{ batchId: 001, data: ... }
{ batchId: 002, data: ... }
{ batchId: 002, data: ... }
{ batchId: 003, data: ... }
{ batchId: 003, data: ... }
{ batchId: 003, data: ... }

现在,我可以得到每个 one 的第一个文档batchId,以便响应是这样的:

{ batchId: 001, data: ... }
{ batchId: 002, data: ... }
{ batchId: 003, data: ... }

从集合中选择了每种类型之一,建议的答案是findOne为每个batchId. 但是有什么办法可以在单个数据库获取中做到这一点吗?

注意:我现在所做的是阅读所有内容,然后使用 Lodash'_.uniqBy过滤一个。只需要知道这是否是唯一的方法。

拉维·香卡尔·巴蒂

您可以使用 mongoDB 聚合管道来获取每种类型的第一个文档。

使用,$group$first.

首先使用$matchwith$in获取数组对应的所有文档batchIds

接下来,按 分组batchId并使用 获取第一个文档的数据$first

Collection.aggregate([
    $match :{
        batchId : {
            $in : batchIdArray
        }
    },
    $group : {
        _id : "$batchId",
        batchId : { $first : "$batchId"},
        data : {$first : "$data}
    }
]);

有关详细信息,请阅读有关$group$match 的MongoDB 文档

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在猫鼬中,如何仅删除集合中找到的一个文档?

来自分类Dev

猫鼬子文档插入到另一个集合中,同时在父架构中保持关系

来自分类Dev

如何使用原子查询更新猫鼬中另一个子文档中的一个子文档?

来自分类Dev

猫鼬:如何查询文档,如果找不到则创建一个,但是如果找到一个则不更新?

来自分类Dev

猫鼬找到一个并推送到一系列文档

来自分类Dev

C ++是否有一个容器,最多可以存储每种类型的一个对象?

来自分类Dev

猫鼬填充如何将填充子文档连接到另一个集合

来自分类Dev

附带对象的工厂,其中每种类型的对象都有一个公共参数

来自分类Dev

猫鼬$ in运算符仅更新一个文档

来自分类Dev

用猫鼬更新嵌套json文档中的一个元素

来自分类Dev

在另一个子文档数组中的猫鼬增量子文档数组值

来自分类Dev

猫鼬计数文档,其中属性设置为false的数组元素的计数小于一个值

来自分类Dev

将“是”标志应用于每种类型的帐户的所有日期的所有第一个实例

来自分类Dev

限制一个查询的猫鼬

来自分类Dev

如何用猫鼬中另一个集合的文档填充文档的字段时查询文档?

来自分类Dev

猫鼬子文档中另一个无效模式错误

来自分类Dev

每种类型的导入模块都有一个错误

来自分类Dev

在猫鼬中,如何仅删除集合中找到的一个文档?

来自分类Dev

使用猫鼬在一个文档中进行多次更新

来自分类Dev

如何使用原子查询更新猫鼬中另一个子文档中的一个子文档?

来自分类Dev

如何在猫鼬中仅获得一个子文档中的一项?

来自分类Dev

获取猫鼬类型的所有文档,但每个文档数组仅包含一个特定项

来自分类Dev

猫鼬/ mongodb-另一个文档的参考值

来自分类Dev

Rails查询每种类型的最后一个

来自分类Dev

如何在一个数组猫鼬中存储不同的子文档?

来自分类Dev

从另一个子文档填充猫鼬的子文档,其中两个子文档都是主文档的一部分

来自分类Dev

一个查询即可搜索多种类型的文档

来自分类Dev

我可以为每种类型的对象指定一个控件吗?

来自分类Dev

猫鼬模型不会作为新文档添加,除非我给它一个唯一的约束

Related 相关文章

  1. 1

    在猫鼬中,如何仅删除集合中找到的一个文档?

  2. 2

    猫鼬子文档插入到另一个集合中,同时在父架构中保持关系

  3. 3

    如何使用原子查询更新猫鼬中另一个子文档中的一个子文档?

  4. 4

    猫鼬:如何查询文档,如果找不到则创建一个,但是如果找到一个则不更新?

  5. 5

    猫鼬找到一个并推送到一系列文档

  6. 6

    C ++是否有一个容器,最多可以存储每种类型的一个对象?

  7. 7

    猫鼬填充如何将填充子文档连接到另一个集合

  8. 8

    附带对象的工厂,其中每种类型的对象都有一个公共参数

  9. 9

    猫鼬$ in运算符仅更新一个文档

  10. 10

    用猫鼬更新嵌套json文档中的一个元素

  11. 11

    在另一个子文档数组中的猫鼬增量子文档数组值

  12. 12

    猫鼬计数文档,其中属性设置为false的数组元素的计数小于一个值

  13. 13

    将“是”标志应用于每种类型的帐户的所有日期的所有第一个实例

  14. 14

    限制一个查询的猫鼬

  15. 15

    如何用猫鼬中另一个集合的文档填充文档的字段时查询文档?

  16. 16

    猫鼬子文档中另一个无效模式错误

  17. 17

    每种类型的导入模块都有一个错误

  18. 18

    在猫鼬中,如何仅删除集合中找到的一个文档?

  19. 19

    使用猫鼬在一个文档中进行多次更新

  20. 20

    如何使用原子查询更新猫鼬中另一个子文档中的一个子文档?

  21. 21

    如何在猫鼬中仅获得一个子文档中的一项?

  22. 22

    获取猫鼬类型的所有文档,但每个文档数组仅包含一个特定项

  23. 23

    猫鼬/ mongodb-另一个文档的参考值

  24. 24

    Rails查询每种类型的最后一个

  25. 25

    如何在一个数组猫鼬中存储不同的子文档?

  26. 26

    从另一个子文档填充猫鼬的子文档,其中两个子文档都是主文档的一部分

  27. 27

    一个查询即可搜索多种类型的文档

  28. 28

    我可以为每种类型的对象指定一个控件吗?

  29. 29

    猫鼬模型不会作为新文档添加,除非我给它一个唯一的约束

热门标签

归档