在尝试更新Mongo中的字段时,我得到"字段名称重复不允许使用修饰符"错误.一个例子:
> db.test.insert({test: "test1", array: [0]});
> var testFetch = db.test.findOne({test: "test1"});
> db.test.update(testFetch,
{$push: {array: 1}, //push element to end of key "array"
$pop: {array: -1} //pop element from the start of key "array"
});
Field name duplication not allowed with modifiers
Run Code Online (Sandbox Code Playgroud)
有没有办法执行这个原子操作?我不想为此做两个单独的更新.
Gat*_* VP 13
Mongo的票务系统有一个突出的问题:http://jira.mongodb.org/browse/SERVER-1050
看起来好像是今年的.你的场景绝对是一个明智的场景,但它也与一堆边缘案例有关.如果你$push和$pop一个空阵列怎么办?期待什么?如果你$push和你想要什么$pull?
我不想为此做两个单独的更新.
我知道这样做真的有"代码味道",但它是否是使用此解决方案的完全阻止?"双重更新"会彻底摧毁服务器性能吗?
| 归档时间: |
|
| 查看次数: |
5629 次 |
| 最近记录: |