我想执行一个查询,以获取在该用户数组中具有userId的所有“组”文档。
我尝试了几种不同的查询方式,但是我总是得到一个空数组。
我在做什么错了?
group.js
let mongoose = require('mongoose');
const Group = mongoose.Schema({
name: {
type: String,
required: true
},
users: [{
userId: {
type: mongoose.SchemaTypes.ObjectId,
ref: 'users',
required: true
},
userType: {
type: String,
required: true
},
userStatus: {
type: String,
required: true
}
}]
})
module.exports = mongoose.model('group', Group);
groupController.js
exports.getUserGroups = function (req, res) {
Group.find({
"users.userid": "req.user._id"
}, function (err, groups) {
if (err)
res.send(err)
res.json(groups);
});
}
答案 0 :(得分:0)
您可以尝试使用$in
运算符
db.collection.find({
"users.userId": {
$in: [
req.user._id
]
}
})
答案 1 :(得分:0)
字段名称区分大小写,因此"users.userid"
应该为"users.userId"
:
Group.find({
"users.userId": "req.user._id"
}, ...