Mongoose Schema Ref&填充

时间:2017-04-18 01:27:52

标签: mongodb mongoose mean-stack

我想用来自同一集合的一组文档填充我的数据库查询。之前从未引用我无法判断错误是在我的模型中还是在我的查询中。

我当前的架构如下所示,

var mongoose = require('mongoose'),
    Schema = mongoose.Schema,
    shortid = require('shortid')

/* Calendar Schema */
var CalendarSchema = mongoose.Schema({
  _id: {
    type: String,
    unique: true,
    'default': shortid.generate
  }, 
  title:String,
  mixin: [{_id: { type: String, ref: 'calendarlist' }}],
  notes: Array
})

module.exports = mongoose.model('calendarlist', CalendarSchema)

我的示例文档看起来像这样,

{
    "_id" : "mixtest",
    "mixin" : [ 
        {
            "$ref" : "calendarlist",
            "$id" : "cVkKRkNtB-"
        }
    ],
    "title" : "mix test",
    "__v" : 3,
    "notes" : []
}

and


{
    "_id" : "cVkKRkNtB-",
    "title" : "found doc",
    "__v" : 3,
    "notes" : []
}

我的查询看起来像这样,

calendarlist.find({}).populate('mixin').sort({
              title: 1
            }).exec(function(err, s) {
              if (err) {console.log(err) }
              console.log(s)})

完全赞赏的建议,提示或一般说明。感谢。

1 个答案:

答案 0 :(得分:0)

This link表明进行参考的方式如下所示:

fans: [{ type: Number, ref: 'Person' }]

您是否尝试过以下操作?:

mixin: [ { type: String, ref: 'calendarlist' }],

此外,您的模型名称是“calendarlist”。您的收藏是否被称为“日历主义者”?因为'Mongoose会根据this link自动查找您的模型名称的复数版本。