Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js mongoose检索每种类型的一个文档_Node.js_Mongodb_Mongoose - Fatal编程技术网

Node.js mongoose检索每种类型的一个文档

Node.js mongoose检索每种类型的一个文档,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我有一个batchIds数组,比如[001002003,…]。再想象一下,我的收藏是这样的: { batchId: 001, data: ... } { batchId: 001, data: ... } { batchId: 001, data: ... } { batchId: 002, data: ... } { batchId: 002, data: ... } { batchId: 003, data: ... } { batchId: 003, data: ... } { batch

我有一个
batchId
s数组,比如
[001002003,…]
。再想象一下,我的收藏是这样的:

{ batchId: 001, data: ... }
{ batchId: 001, data: ... }
{ batchId: 001, data: ... }
{ batchId: 002, data: ... }
{ batchId: 002, data: ... }
{ batchId: 003, data: ... }
{ batchId: 003, data: ... }
{ batchId: 003, data: ... }
现在,我是否可以获取每个
batchId
的第一个文档,因此响应如下:

{ batchId: 001, data: ... }
{ batchId: 002, data: ... }
{ batchId: 003, data: ... }
我浏览了一遍,建议的答案是对每个
batchId
执行do
findOne
。但是,有没有任何方法可以在一个数据库获取中实现呢


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

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

将,
$group
$first
一起使用

首先在中使用
$match
$in
来获取与
批处理ID数组
对应的所有文档

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

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

有关详细信息,请阅读和上的MongoDB文档。

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

将,
$group
$first
一起使用

首先在中使用
$match
$in
来获取与
批处理ID数组
对应的所有文档

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

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

有关详细信息,请阅读和上的MongoDB文档。

我会尝试一下,并让您知道@当然,我希望这会对你有用,并能达到你想要的效果。我会试试,让你知道@丹麦当然,我希望这将为你工作,并将实现你想要的结果。