gpt4 book ai didi

node.js - mongodb 中带有 _id 字段的不同集合

转载 作者:太空宇宙 更新时间:2023-11-03 23:55:13 25 4
gpt4 key购买 nike

我有一个这样的集合:

{
"_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 个集合。例如:

{
"_id" : ObjectId("5d5aa6b5cced8d2cac81e7d7"),
"stream" : "Programming"
}
{
"_id" : ObjectId("5d5aa6d2cced8d2cac81e7d8"),
"stream" : "Basic"
}

distinct 仅返回数组内的stream

最佳答案

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

db.exampleCollection.aggregate([{$group:{_id:"$stream",stream_id:{$first:"$_id"}}},{$project:{stream:"$_id",_id:'$stream_id'}}]);

结果示例 mongo_aggregation_result

关于node.js - mongodb 中带有 _id 字段的不同集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57559215/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com