我正在使用Node.js和MongoDB开发应用程序。我有一个特定的用例,其中我创建了一个新用户,并成功获取用户的城市(如果不存在),将用户的ObjectId添加到另一个名为“城市”的集合中,或者创建一个新用户并将用户的ObjectId附加到城市的订户列表字段中文献。 模式如下所示:
CitiesSchema:
var CitiesSchema = new Schema({
City:{
type: String
},
SubscribersList: [{type: Schema.ObjectId}]
});
User Schema:
var UsersSchema = new Schema({
emailId: {
type: String,
required: 'Mandatory field'
},
city: {
type: String
},
subscribedOn: {
type: Date,
default: Date.now
},
lastEmailSent: {
type: Date,
default: null
},
isActive: {
type: Boolean,
default: true
}
});
请让我知道如何以最简洁的方式解决此问题,或者我需要遵循任何设计模式吗?
答案 0 :(得分:0)
创建then
后,您可以使用User
符号继续处理 。像这样
UserSchema.create({
emailId: 'email@exmaple.com',
city: 'Rome'
})
.then(user => {
// For example if you want to push to the city of the user
CityScema.update({
City: user.city
}, {
$push: {
SubscribersList: user._id
}
}).then(() => {
res.sendStatus(200);
}).catch(err => res.status(500).send(err));
}).catch(err => {
// Handle your errors here
console.error(err);
});
确保您检查了Mongoose docs on Models以获得更多信息