我正在尝试在我的用户中同时发布数据,将我的用户的_id作为参考ID发布在我的捐赠表中。
我在users表中发布我的数据后,如下所示:
var User = require('../models/user');
var Blooddonation = require('../models/blooddonation');
router.post('/createBlooduser',function(req, res) {
var user = new User();
user.user_lastname = req.body.user_lastname;
user.status= "initial";
user.save(function(err) {});
});
如何获取已发布数据的_id并在我的捐赠表中创建参考ID?像这样的东西:
**users.json**
{
_id:ObjectId("5c7e591eee959272cc5768cb"),
user_lastname:"Jhonson",
status:"initial"
}
**blooddonations.json**
{
donor_id:ObjectId("5c7e591eee959272cc5768cb")
}
只要您使用_id
之类的语句创建新实例,就会创建new User()
属性。因此,您甚至可以在它存储在集合中之前实际访问该值,或者在实例创建之后的任何时候实际访问该值:
router.post('/createBlooduser',function(req, res) {
var user = new User();
user.user_lastname = req.body.user_lastname;
user.status= "initial";
user.save(function(err) {
if (err) throw err; // or really handle better
// You can also just create() rather than new Blooddonation({ donor_id: user._id })
Blooddonation.create({ donor_id: user._id }, function(err, donor) {
// check for errors and/or respond
})
});
});
如果您可能只想访问可能“默认保存”的其他属性,那么您可以从save()
或create()
访问回调:
router.post('/createBlooduser',function(req, res) {
User.create({
user_lastname: req.body.user_lastname;
status: "initial"
}, function(err, user) { // this time we pass from the callback
if (err) throw err; // or really handle better
Blooddonation.create({ donor_id: user._id }, function(err, donor) {
// check for errors and/or respond
});
});
});