繁体   English   中英

如何在 mongoose 中查询关系/嵌套模式?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM