Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.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 mongodb中具有_id字段的不同集合_Node.js_Mongodb_Mongoose_Mongodb Query - Fatal编程技术网

Node.js mongodb中具有_id字段的不同集合

Node.js mongodb中具有_id字段的不同集合,node.js,mongodb,mongoose,mongodb-query,Node.js,Mongodb,Mongoose,Mongodb Query,我有这样的收藏: { "_id" : ObjectId("5d5aa6b5cced8d2cac81e7d7"), "stream" : "Programming", "coursename" : "java", "fee" : 50000, "date" : ISODate("2019-08-19T13:40:05.312Z"), "__v" : 0 } { "_id" : ObjectId("5d5aa6d2cced8d2cac81e7

我有这样的收藏:

{
    "_id" : ObjectId("5d5aa6b5cced8d2cac81e7d7"),
    "stream" : "Programming",
    "coursename" : "java",
    "fee" : 50000,
    "date" : ISODate("2019-08-19T13:40:05.312Z"),
    "__v" : 0
}

{
    "_id" : ObjectId("5d5aa6d2cced8d2cac81e7d8"),
    "stream" : "Basic",
    "coursename" : "Msoffice",
    "fee" : 50000,
    "date" : ISODate("2019-08-19T13:40:34.560Z"),
    "__v" : 0
}

{
    "_id" : ObjectId("5d5aa6e0cced8d2cac81e7d9"),
    "stream" : "Basic",
    "coursename" : "Tally",
    "fee" : 80000,
    "date" : ISODate("2019-08-19T13:40:48.667Z"),
    "__v" : 0
}

{
    "_id" : ObjectId("5d5aa707cced8d2cac81e7da"),
    "stream" : "Programming",
    "coursename" : "C++",
    "fee" : 80000,
    "date" : ISODate("2019-08-19T13:41:27.556Z"),
    "__v" : 0
}
在这里您可以看到编程和基本流是重复的。我想区分流以及其中的_id和流字段。所以结果将是2个集合。 例:


distinct
仅返回数组中的
流。

使用Mongodb聚合$group和$project阶段将得到预期结果

db.exampleCollection.aggregate([{$group:{_id:"$stream",stream_id:{$first:"$_id"}}},{$project:{stream:"$_id",_id:'$stream_id'}}]);
示例结果
Erm,为什么不简单地使用
编程
基本
作为
\u id
db.exampleCollection.aggregate([{$group:{_id:"$stream",stream_id:{$first:"$_id"}}},{$project:{stream:"$_id",_id:'$stream_id'}}]);