【问题标题】:mongoose populate returns null array猫鼬填充返回空数组
【发布时间】:2016-04-28 12:14:54
【问题描述】:

猫鼬与人口的关系并不好。这是我的模特

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

mongoose.connect(process.env.MONGO_URI);

var userSchema = new Schema({
  username: String,
  password: String,
  books: [{type: Schema.Types.ObjectId, ref: 'User'}]
  }
);

var bookSchema = new Schema({
  bookid: {type:String, unique:true, required:true},
  imgURL: String
});

module.exports.user = mongoose.model('User', userSchema);
module.exports.book = mongoose.model('Book', bookSchema);

数据库看起来正确。

{ "_id" : ObjectId("56a17cd70a498fcc37cdbe60"), "username" : "test", "password" : "test", "books" : [ ObjectId("56a17d21d43dc32a3a9837de"), ObjectId("56a17ee5d43dc32a3a9837e4"), ObjectId("56a17f5dd43dc32a3a9837e6"), ObjectId("56a17f9fd43dc32a3a9837e8") ], "__v" : 4 }

但是当我进行填充时,我得到一个空的“书籍”数组

users.findOne({'_id':userid}).populate('books').exec(function(err,data){
            if (err) return console.error(err);

            if(data){

            }
});

一切都在那里,它根本不会填充。任何建议将不胜感激。

【问题讨论】:

    标签: node.js mongodb


    【解决方案1】:

    userSchema 中的 ref 似乎不正确,它应该引用 book 架构而不是 user 架构本身。

    var book = mongoose.model('Book', bookSchema);
    
    ...
    books: [{type: Schema.Types.ObjectId, ref: 'book'}]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-11-24
      • 2019-07-17
      • 2023-03-21
      • 2019-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多