MongooseJS - 具有现有引用的Model.create

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MongooseJS - 具有现有引用的Model.create相关的知识,希望对你有一定的参考价值。

我正在尝试使用model.create()速记来创建一个具有现有User ObjectId的新公司。

const userSchema = new mongoose.Schema({
    firstName: String,
    lastName: String
});

const companySchema = new mongoose.Schema({
    companyName: String,
    users: [{
        type: mongoose.Schema.Types.ObjectId,
        ref: 'User'
    }]
});

const User = mongoose.model('user2', userSchema);
const Company = mongoose.model('company2', userSchema);

users集合中已存在以下用户

{"_id":"5a9633031fe445041c07afd3","firstName":"John","lastName":"Doe","__v":0}

现在我想用这个现有用户创建一个新公司:

Company.create({
  companyName: 'Foo, Inc.',
  users: {5a9633031fe445041c07afd3}
}).then(function(err, company) {
  console.log(err, company);
});

我尝试过用户的变体:

users: '5a9633031fe445041c07afd3'
users: [5a9633031fe445041c07afd3]
users: [{5a9633031fe445041c07afd3}]

我该如何保存这份文件?

答案

试试这个

let model = new Company();
const body = {
    companyName: 'Foo, Inc.',
    users: "5a9633031fe445041c07afd3"
};
model = Object.assign(model, body);
model.then((company) => {
    console.log(company);
}).catch((err) => {
    console.log(err);
})

以上是关于MongooseJS - 具有现有引用的Model.create的主要内容,如果未能解决你的问题,请参考以下文章

填充嵌套引用的更好方法 mongoosejs

如何在 mongoosejs 中深度填充多个路径?

Mongoosejs 刷新文档

MongooseJS 使用多个目标字段填充

mongoosejs 定义复杂模型

在 MongooseJs 中选择特定字段