如何在 mongodb mongoose 中增加字段
How to increment filed in mongodb mongoose
const options = {
$addToSet: { whoLikes: userId },
$inc: { likesCount: 1 },
new: true,
};
collection.findByIdAndUpdate({ _id: postId }, options)
我想要的是仅当 whoLikes 数组长度递增时才递增 likesCount。
现在 likesCount 一直递增与 whoLikes 数组中有多少对象无关。
我正在使用猫鼬,node.js
- 使用
findOneAndUpdate()
方法
- 只需检查查询部分中的条件
whoLikes: { $ne: userId }
userId 不应在 whoLikes
数组中
- 用户
$push
而不是 $addToSet
- 其他选项应该在第三个参数中
new:true
const options = {
$push: { whoLikes: userId },
$inc: { likesCount: 1 }
};
collection.findOneAndUpdate(
{
_id: postId,
whoLikes: { $ne: userId }
},
options,
{ new: true }
)
Ex1: 添加不存在的 UserID
Ex2: 添加已经存在的 UserID
const options = {
$addToSet: { whoLikes: userId },
$inc: { likesCount: 1 },
new: true,
};
collection.findByIdAndUpdate({ _id: postId }, options)
我想要的是仅当 whoLikes 数组长度递增时才递增 likesCount。 现在 likesCount 一直递增与 whoLikes 数组中有多少对象无关。
我正在使用猫鼬,node.js
- 使用
findOneAndUpdate()
方法 - 只需检查查询部分中的条件
whoLikes: { $ne: userId }
userId 不应在whoLikes
数组中 - 用户
$push
而不是$addToSet
- 其他选项应该在第三个参数中
new:true
const options = {
$push: { whoLikes: userId },
$inc: { likesCount: 1 }
};
collection.findOneAndUpdate(
{
_id: postId,
whoLikes: { $ne: userId }
},
options,
{ new: true }
)
Ex1: 添加不存在的 UserID
Ex2: 添加已经存在的 UserID