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'}}]);