Mongoose:查找所有引用的文档

Posted

技术标签:

【中文标题】Mongoose:查找所有引用的文档【英文标题】:Mongoose: find all referenced documents 【发布时间】:2017-05-13 11:15:23 【问题描述】:

我有 2 个架构:

var pollSchema = new mongoose.Schema(
    title: String,      
    created: 
        type: Date, default: Date.now
    ,
    options: [
        label: String,
        count: 
            type: Number,  default: 0
        ,
        backgroundColor: 
            type: String,  default: '#fff'
        
    ],
    author:
        id:
            type: mongoose.Schema.Types.ObjectId,
            ref: "User"
        ,              
        username: String        
    
);



var userSchema = new Schema(
    username: type: String, unique:true,
    email: type: String, unique:true, lowercase: true,
    password: String
);

现在每个民意调查都将存储其作者的数据。 问题:

如何重新设计我的架构 - 这样我才能找到属于特定用户的所有民意调查? 还是应该让架构保持不变并寻找其他方法?

【问题讨论】:

【参考方案1】:

您仍然可以找到属于特定用户的所有民意调查。你有 author.id 。

您也可以将数组保留为var userSchema = new Schema( username: type: String, unique:true, email: type: String, unique:true, lowercase: true, password: String, polls: [] );

每次用户投票时,将 userId 推送到 polls 数组中,您可以稍后填充或获取计数。

【讨论】:

以上是关于Mongoose:查找所有引用的文档的主要内容,如果未能解决你的问题,请参考以下文章

Mongoose 查找数组中包含字符串的所有文档

文档不会使用带有 mongoose 的 save() 方法保存

Mongoose ODM,保存前更改变量

Mongoose ODM,保存前更改变量

Mongoose 查找 array.length 大于 0 的所有文档并对数据进行排序

无法从 Mongoose 模型中获取文档“find”承诺