MongoDB创建文档并成功创建另一个文档

时间:2019-02-26 20:31:50

标签: node.js mongodb document

我正在使用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
  }
});

请让我知道如何以最简洁的方式解决此问题,或者我需要遵循任何设计模式吗?

1 个答案:

答案 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以获得更多信息