【问题标题】:Populate Schema on Mongoose在 Mongoose 上填充模式
【发布时间】:2018-06-08 15:41:01
【问题描述】:

我有两个集合,一个是用户,另一个是猫。我想要在我的用户收集下的猫数据。但我没有得到。

用户.js

var Schema = mongoose.Schema;
var userSchema = Schema({
_id: Schema.Types.ObjectId,
username: String,
email: { type: String, unique: true, lowercase: true, trim: true },
password: String,
role: String,
cats: [{ type: Schema.ObjectId, ref: 'Cat' }]
});
var User = mongoose.model('User', userSchema);
exports.default = User;

猫.js

var mongoose = require("mongoose");
var Schema = mongoose.Schema;
var catSchema = Schema({
fname: String,
mname: String,
lname: String,
});
var Cat = mongoose.model('Cat', catSchema);
exports.default = Cat;

O/p

"_id" : ObjectId("5a446ab43533970b8489e1ac"), “用户名”:“xyz”, “电子邮件”:“xyz@gmail.com”, "密码""$2a$10$ogerY6OiCRKy9TjPYERaOugUJeqelBl.yToJ4ZBX3ac2MVZQpsKOu", “角色”:“用户”, “猫” : [ ], “__v”:0

预期输出

"_id" : ObjectId("5a446ab43533970b8489e1ac"), “用户名”:“xyz”, “电子邮件”:“xyz@gmail.com”, "密码""$2a$10$ogerY6OiCRKy9TjPYERaOugUJeqelBl.yToJ4ZBX3ac2MVZQpsKOu", “角色”:“用户”, “猫” : [{ "_id" : ObjectId("5a44707effc66a234447c36b"), “fname”:“felix”, “mname”:“”, “lname”:“”, }], “__v”:0

【问题讨论】:

    标签: node.js mongodb angular mongoose


    【解决方案1】:

    修复您的架构(应为cats: [{ type: Schema.Types.ObjectId, ref: 'Cat' }] 并参考http://mongoosejs.com/docs/populate.html

    【讨论】:

      【解决方案2】:

      您可以将它们组合成一个模式,如下所示。 除非数组数量连续增加几百个,否则没有任何理由单独创建模式..

      var Schema = mongoose.Schema;
      var userSchema = Schema({
        _id: Schema.Types.ObjectId,
        username: String,
        email: { type: String, unique: true, lowercase: true, trim: true },
        password: String,
        role: String,
        cats: [
          { 
            _id: Schema.Types.ObjectId,
            fname: String,
            mname: String,
            lname: String,
          }
        ]
      });
      var User = mongoose.model('User', userSchema);
      exports.default = User;
      

      【讨论】:

      • 我有 10 多个收藏品,我希望它们有特殊用途。我认为上述方法会变得复杂
      • 我找到了一个要点。如果你还没有看到,你可以看看 - gist.github.com/troyk/1892652
      猜你喜欢
      • 1970-01-01
      • 2013-12-24
      • 1970-01-01
      • 2017-03-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-27
      • 2019-07-28
      • 2012-01-22
      相关资源
      最近更新 更多