const roomSchema = new mongoose.Schema({
roomname: {
type: String,
required: true
},
users: {
type: Array,
required: true
},
createdDate: {
type: Date,
default: new Date()
},
admins: {
type: Array
},
groupType: {
type: String,
required: true
},
requests: {
type:Array
},
ip: {
type:String,
required:true
},
country:{
type:String,
required:true
}
});
const roomModel=mongoose.model('room',roomSchema)
const getUsersInaRoom=async ()=>{
const res = await roomModel.find({ 'roomname': 'room1' });
console.log(res);
}
getUsersInaRoom();
The error it throws is:
node:6123) UnhandledPromiseRejectionWarning: MongoInvalidArgumentError: Method "collection.find()" accepts at most two arguments at Collection.find (/Users/macpro/Desktop/React/chat-using-socket/backend/node_modules/mongodb/lib/collection.js:238:19)
It used to work perfectly a few minutes ago, now throws the above error.
There seems to be an issue with the new version of mongoose. Run npm rm mongoose to uninstall the current version, npm i mongoose@5.13.8 to install the previous one and try again.
This issue happens when you call find() before mongoose.connect() succeeds. Await mongoose.connect() before calling find().
Check if you are specifying some of the following options when connecting to MongoDB: useNewUrlParser, useUnifiedTopology, useFindAndModify, useCreateIndex. If you are, remove these from options object and try again.