mongodb - mongoDB条件增量
问题描述
db.posts.update({_id: post._id},
{
$inc: {likes: 1},
$addToSet:{likedby: johnny._id}
})
所以 $addToSet 只会在数组中不存在 id 的情况下将 id 添加到数组中,但是无论哪种方式,我的喜欢都会增加。
有什么办法可以使这个增量有条件吗?
解决方案
询问
- 根据 id 搜索,如果不存在
- 如果找到意味着不存在所以更新,不需要
$addToSet
- 将 1 替换为
post._id
,将“c”替换为johnny._id
db.collection.update({
"_id": 1,
"likedby": {
"$ne": "c"
}
},
{
"$inc": {
"likes": 1
},
"$push": {
"likedby": "c"
}
})
推荐阅读
- python - Ctrl-C 从 python 到 bash
- mysql - 选择最新的行,然后随机化这些行,然后显示随机化的前 2 行
- node.js - 如何从http获取url参数
- react-native - 使用 react-native 开发增加/减少滑动按钮?
- ios - 如何让tableview控件适合整个屏幕
- c# - 如何使用 gui 按钮在方法中启用禁用代码并更改按钮文本?
- c++ - 使用静态变量的递归函数
- python - 使用pypdf2将文件夹中的所有pdf文件合并为一个pdf
- swift - 为什么 Swift 中的数组运算性能比较慢?
- c# - 在 SQL Server 2008 R2 的查询中使用多个 like 子句和 dapper 进行分页