mongodb - 复杂查询 mongoose - 嵌入式文档数组
问题描述
我想执行一个查询以获取所有在用户数组中具有 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);
});
}
解决方案
您可以尝试使用$in
运算符
db.collection.find({
"users.userId": {
$in: [
req.user._id
]
}
})
推荐阅读
- java - 使用 JScrollPane 时不可靠的容器宽度
- javascript - 等待 Ajax 请求绘制图表
- flutter - Flutter Visibility Toggle 未按预期工作
- c# - 将 ReCaptcha 安装到 Umbraco V7
- amazon-web-services - AWS ECS:使用容量提供程序时如何在扩展策略中更改估计的 EC2 实例预热
- python - 编写一个检查单词是否仅由字母组成的函数
- r - 我的功能不起作用,但我输入的值确实
- python - Discord.py - 即使我定义了命令 ping,也没有定义它
- ios - iOS 中的 UITouch 时间戳有多准确?
- reactjs - 如何使用 flexDirection 列处理 flexbox 中的宽度?