UpdateOne返回mongoose对象而不是文档
运行此查询时:UpdateOne返回mongoose对象而不是文档,mongoose,Mongoose,运行此查询时: const project = await models.Projects .updateOne( { _id: projectId }, { $addToSet: { membersIds: { $each: membersIds }, }, }, ); 我得到的答复如下: { n: 1,
const project = await models.Projects
.updateOne(
{ _id: projectId },
{
$addToSet:
{
membersIds:
{
$each: membersIds
},
},
},
);
我得到的答复如下:
{ n: 1, nModified: 1, ok: 1 }
是否可以获取更新的对象而不是此mongoose数据?从:[callback]«Function»参数是(error,writeOpResult)
,这意味着无法使用updateOne
方法返回文档
但是,可以使用提供的
lean:true
选项来代替updateOne
,如果在更新操作后不使用文档,则应使用updateOne,速度更快。然而;如果需要更新文档,则应使用或。您可以只使用_id和findbyiandupdate进行筛选,但可以使用每个现有字段和findOneAndUpdate进行筛选 注意
我看到了响应,它们都是正确的,但是,请注意添加新建选项,并将其设置为true以获取新的更新文档,否则它将在更新之前返回文档:
models.Projects.findByIdAndUpdate(
{ "_id": projectId },
{ $addToSet:{ membersIds: { $each: membersIds }}})
.exec()
.then((response) => {
console.log('document before updating =>', response);
});
models.Projects.findByIdAndUpdate(
{ "_id": projectId },
{ $addToSet:{ membersIds: { $each: membersIds }}},
{new: true})
.exec()
.then((response) => {
console.log('document after updating =>', response);
});