猫鼬将产品 table 中的 ID 推送到用户 table
Mongoose push id from products table into users table
我目前有一个用户模型和一个产品模型。我正在尝试将特定产品的 ID 推送到用户架构中名为产品的数组中。
基本上我正在尝试做这样的事情
router.post('/setproduct', function(req, res) {
var product = new models.Product({
name: req.body.prodName,
price: req.body.price,
color: req.body.color
});
product.save(function(err) {
if (err) {
var error = 'Something bad happened! Please try again.';
res.render('setproduct.jade', { error: error }, {csrfToken: req.csrfToken() });
} else {
/* PUSH PRODUCT.ID TO USER.PRODUCTS ARRAY */
res.redirect('/dashboard');
}
});
});
您要查找的是 $push
运算符。
product.save(function(err, doc) {
if (err) {
var error = 'Something bad happened! Please try again.';
res.render('setproduct.jade', { error: error }, {csrfToken: req.csrfToken() });
} else {
var uid = req.user._id;
Users.update({ _id: uid }, { $push: { products: doc._id } }, function(err) {
if (err) // Handle error...
res.redirect('/dashboard');
});
}
});
我只是假设您可以使用 req.user._id
.
之类的内容访问您路线中用户的 _id
一个友好的建议是你完全跳过 Mongoose 并只使用原始 MongoDB Node.js Driver (docs) 因为它更简单并且 MongoDB 是 schema-less 所以强制执行一个collections 上的架构,您也可能会获得更好的性能。虽然这只是个人喜好,所以完全取决于您。
我目前有一个用户模型和一个产品模型。我正在尝试将特定产品的 ID 推送到用户架构中名为产品的数组中。
基本上我正在尝试做这样的事情
router.post('/setproduct', function(req, res) {
var product = new models.Product({
name: req.body.prodName,
price: req.body.price,
color: req.body.color
});
product.save(function(err) {
if (err) {
var error = 'Something bad happened! Please try again.';
res.render('setproduct.jade', { error: error }, {csrfToken: req.csrfToken() });
} else {
/* PUSH PRODUCT.ID TO USER.PRODUCTS ARRAY */
res.redirect('/dashboard');
}
});
});
您要查找的是 $push
运算符。
product.save(function(err, doc) {
if (err) {
var error = 'Something bad happened! Please try again.';
res.render('setproduct.jade', { error: error }, {csrfToken: req.csrfToken() });
} else {
var uid = req.user._id;
Users.update({ _id: uid }, { $push: { products: doc._id } }, function(err) {
if (err) // Handle error...
res.redirect('/dashboard');
});
}
});
我只是假设您可以使用 req.user._id
.
_id
一个友好的建议是你完全跳过 Mongoose 并只使用原始 MongoDB Node.js Driver (docs) 因为它更简单并且 MongoDB 是 schema-less 所以强制执行一个collections 上的架构,您也可能会获得更好的性能。虽然这只是个人喜好,所以完全取决于您。