mongodb - 如何将序数位置传递到 Pymongo 中的更新文档中以进行 $inc 更新

标签 mongodb pymongo

我有一个文档,其中包含没有 ID 的嵌套文档数组

_id: adsjfdsau7Hukad,
'nested':[{ a:'123456',b:'zzzzzzzzz'},
          {a:'788123',b:'6yuuuuuu'},
          {a:'123456',b:'ooo998uj'}] 

我想在已识别文档的指定元素中增加一个新属性“c”。例如:

db.collection.update({_id:'adsjfdsau7Hukad'},{$inc:{'nested.2.c':1}})

当我可以显式编写元素序号位置标识符时,此方法有效。但是,我需要为元素序号位置传递一个变量,但我还没有找到这样做的方法。我试过这个:

var num = 4 ## as example
db.collection.update({_id:'adsjfdsau7Hukad','nested.$': num},{$inc:{'nested.$.c':1}})

但这似乎不起作用。

有什么想法吗?

最佳答案

您需要以编程方式生成 key :

在外壳中:

var num = 4;
var inc = {};
inc['nested.' + num + '.c'] = 1;
db.collection.update({_id: 'adsjfdsau7Hukad'}, {$inc: inc})

在 pymongo 中:

num = 4
db.collection.update(
    {'_id': 'adsjfdsau7Hukad'},
    {'$inc': {'nested.' + str(num) + '.c': 1}})

关于mongodb - 如何将序数位置传递到 Pymongo 中的更新文档中以进行 $inc 更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18068656/

相关文章:

mongodb - Mongodb 中的读自己写的一致性

java - 将 Spring boot 容器连接到 Mongo 容器 : java.net.UnknownHostException : mongo: System error?

mongodb - mongo如何在集群中选择主分片?

python - 我可以将 mongodb 集合作为 python 中的类属性吗

MongoDB:从数组字段中的所有子文档中删除一个字段

SQL 查询的 MongoDB 等价物

javascript - 更新嵌套对象的多个字段

angularjs - 如何将 Redis 与 loopback-MongoDB 一起使用

json - 查询嵌入式文档数组给出错误答案

python - 大数据库中的 MongoDB 计数非常慢