如何查找然后更新用户记录Mongo / Mongoose
运行此代码时,我正在获取user.update不是一个函数。我一直无法在线找到优质的mongo / mongoose文档。
//Add Event
app.post("/addEvent", (req, res, next) => {
const event = req.body.event;
console.log(req.user.id);
console.log(event);
User.find({ _id: req.user.id }, function(err, user) {
if (err) {
console.log(err);
return next(err);
}
if (user) {
user.update(
{
_id: req.user.id
},
{
$push: { events: event }
}
);
}
res.end();
});
});
};```
回答如下:[尝试一下,我想它可能会对您有所帮助。
app.post("/addEvent", (req, res, next) => {
const event = req.body.event;
console.log(req.user.id);
console.log(event);
User.findById({ req.user.id }, async function(err, user) {
if (err) {
console.log(err);
return next(err);
}
if (user) {
User.updateOne(
{
_id: req.user.id
},
{
$push: { events: event }
}
);
}
res.end();
});
});
};
我还建议您在需要使用findByIdAndUpdate或findOneAndUpdate时使用必要的选项。还是用findOne
而不是find
,因为find返回的是[数组]文档,而不是一个文档,因此,如果您要像这样使用async/await
:
const docs = Users.find(query,callback)
它们访问必要文档的唯一方法是docs[n]
,其中n
是结果数组中的文档数。
如何查找然后更新用户记录Mongo / Mongoose
运行此代码时,我正在获取user.update不是一个函数。我一直无法在线找到优质的mongo / mongoose文档。
//Add Event
app.post("/addEvent", (req, res, next) => {
const event = req.body.event;
console.log(req.user.id);
console.log(event);
User.find({ _id: req.user.id }, function(err, user) {
if (err) {
console.log(err);
return next(err);
}
if (user) {
user.update(
{
_id: req.user.id
},
{
$push: { events: event }
}
);
}
res.end();
});
});
};```
回答如下:[尝试一下,我想它可能会对您有所帮助。
app.post("/addEvent", (req, res, next) => {
const event = req.body.event;
console.log(req.user.id);
console.log(event);
User.findById({ req.user.id }, async function(err, user) {
if (err) {
console.log(err);
return next(err);
}
if (user) {
User.updateOne(
{
_id: req.user.id
},
{
$push: { events: event }
}
);
}
res.end();
});
});
};
我还建议您在需要使用findByIdAndUpdate或findOneAndUpdate时使用必要的选项。还是用findOne
而不是find
,因为find返回的是[数组]文档,而不是一个文档,因此,如果您要像这样使用async/await
:
const docs = Users.find(query,callback)
它们访问必要文档的唯一方法是docs[n]
,其中n
是结果数组中的文档数。