我正在尝试插入、更新 MongoDB 数组中的值。
我的MongoDB版本是4.0.5。
这是我的收藏:
{
'id': 1,
'array': [{
'code': 'a'
}, {
'code': 'b'
}]
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试进行一些 upsert 查询以插入/更新到数组中,但直到那时我才找到一个好的解决方案。
我的过滤器是:
'id'(指出正确的文件)'array.code'(指向正确的数组单元)'code': 'c'db.test.update({
'id': 1
}, {
$set: {'array.$[elem].test':'ok'}
}, {
upsert: true,
arrayFilters: [{'elem.code': 'c'}]
}
)
Run Code Online (Sandbox Code Playgroud)
我没有错误,但也没有更新插入。
我想像这样在数组中插入元素:
// Desired result
{
'id': 1,
'array': [{
'code': 'a'
}, {
'code': 'b'
}, {
'code': 'c'
'test': 'ok'
}]
}
Run Code Online (Sandbox Code Playgroud)
db.test.update({
'id': 3
}, {
$set: {'array.$[elem].test':'ok'}
}, {
upsert: …Run Code Online (Sandbox Code Playgroud)