我有2个Mongoose(5.9.25)模式模型。 首先,使用GroupSchema模型:
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模型:
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
})
但是它返回的空数组[]
我已阅读以下答案: Mongoose query for nested schema
但是我想保留GroupPostSchema.group
作为对象而不是数组。
如何做到最简单的方法?
答案 0 :(得分:0)
不使用exec
进行检查,如下所示:
const users = await User.find({'group.privacy': 'public'});