[英]How to query in mongoose for relational/nested schemas?
我有 2 个 Mongoose (5.9.25) 模式模型。 一、GroupSchema model:
const GroupSchema = new mongoose.Schema({
name: {
type: String,
required: true
},
admins: {
type: String,
default: ""
},
blocked: {
type: String,
default: ""
},
createdBy: {
type: mongoose.Types.ObjectId,
required: true,
ref: 'user',
},
members: {
type: String,
default: ""
},
privacy: {
type: String,
required: true,
enum: ['public', 'private', 'deleted'],
},
})
二、GroupPostSchema model:
const GroupPostSchema = new mongoose.Schema({
user: {
type: mongoose.Types.ObjectId,
required: true,
ref: 'user',
},
text: {
type: String,
required: true
},
group: {
type: mongoose.Types.ObjectId,
required: true,
ref: 'group',
},
image: {
type: String
}
})
我正在尝试这样查询:
var search = {
"group.privacy": "public"
}
GroupPostSchema.find(search).exec((err, data) => {
// something
})
但它返回空数组 []
我读过这个答案: ZCCADCDEDB567ABAE643E15DCF0974E503Z query for nested schema
但我想将GroupPostSchema.group
保留为 Object 而不是数组。
如何以最简单的方式做到这一点?
像这样在没有exec
的情况下进行检查:
const users = await User.find({'group.privacy': 'public'});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.