如果满足条件,将一个字段的内容推送到另一个字段(数组) - MongoDB
Push contents of one field to another field (array) if condition is satisfied - MongoDB
这不是我要找的: Update MongoDB field using value of another field
我正在尝试将一个字段的内容复制到另一个字段(恰好是一个数组),如果条件计算结果为真。
文档初始状态:
{
_id: 1234
currentNumber: 5
magicNumbers: [3, 7, 9, 11, 15]
}
如果 currentNumber % 2 == 1
,我想将 currentNumber
的内容复制到 magicNumbers
。这在最新的 MongoDB 版本中可行吗?我正在使用 Nodejs 驱动程序。
最终文档状态:
{
_id: 1234
currentNumber: 5
magicNumbers: [3, 7, 9, 11, 15, 5]
}
我想一次完成此操作,以节省访问数据库的次数。
db.collection.update({
$expr: {
$eq: [ { $mod: [ "$currentNumber", 2 ] }, 1 ]
}
},
[
{
$set: {
magicNumbers: {
$concatArrays: [ "$magicNumbers", [ "$currentNumber" ] ]
}
}
}
],
{
"multi": true
})
这不是我要找的: Update MongoDB field using value of another field
我正在尝试将一个字段的内容复制到另一个字段(恰好是一个数组),如果条件计算结果为真。
文档初始状态:
{
_id: 1234
currentNumber: 5
magicNumbers: [3, 7, 9, 11, 15]
}
如果 currentNumber % 2 == 1
,我想将 currentNumber
的内容复制到 magicNumbers
。这在最新的 MongoDB 版本中可行吗?我正在使用 Nodejs 驱动程序。
最终文档状态:
{
_id: 1234
currentNumber: 5
magicNumbers: [3, 7, 9, 11, 15, 5]
}
我想一次完成此操作,以节省访问数据库的次数。
db.collection.update({
$expr: {
$eq: [ { $mod: [ "$currentNumber", 2 ] }, 1 ]
}
},
[
{
$set: {
magicNumbers: {
$concatArrays: [ "$magicNumbers", [ "$currentNumber" ] ]
}
}
}
],
{
"multi": true
})