MongoDB集合.Aggregrate只接受两个参数



我正在尝试猫鼬的聚合。当我运行聚合时,它显示了错误。我错过了什么?

const data = await Rooms.aggregate([{ $match: { adminID: "1234" } }]);

错误如下

MongoInvalidArgumentError: Method "collection.aggregate()" accepts at most two arguments

Edit——code for Rooms Schema

const mongoose = require('mongoose');
const Rooms = new mongoose.Schema(
{adminID: {
type: String,
required: true,
},  
roomID: {
type: String,
required: true,
},  
roomName: {
type: String,
required: true,
},  
users: [
{
id: {
type: String,
required: true,
unique: true,
},
},
],
},
{ timestamps: true } ); 

模块。exports = mongoose.model(" Rooms ", Rooms);

解决方案一:将mongoose降级到版本5

方案2:

const data = await Rooms.aggregate([{ $match: { adminID: "1234" } }],"adminID roomID roomName users");

在新版本第二个参数是选定字段在输出,

或使用:

const data = await Rooms.aggregate.match({ adminID: "1234" } )

最新更新