Pymongo - Get a Nested Collection and Updating it
我想在我的MongoDB数据库中找到一个嵌套集合,并从Pymongo更新它。这是我的文档树的结构:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | { "name_list" : [ { "_id" : ..., "name" :"Joe Edwards", "aliases" : [ "Allen Dingus", "Edward McPickles" ] }, ... ] } |
我要访问的集合是
我已经查看了PyMongo文档以及Stack Exchange上的很多帖子,但没有发现类似之处。我的临时解决方法是访问
谢谢。
MongoDB尝试将驱动程序(包括Pymongo)的运算符与
关于您的问题,根据您要执行的操作,有几个选项可供您选择:
更新现有的数组元素
这可以使用
1 | db.name_list.update_one({'aliases':'Allen Dingus'}, {'$set': {'aliases.$': 'Alias 1'}}) |
请注意
1 2 3 4 5 6 7 8 | { "_id": ..., "name":"Joe Edwards", "aliases": [ "Alias 1", "Edward McPickles" ] } |
添加新的数组元素
这可以使用
1 | db.test.update_one({'aliases':'Allen Dingus'}, {'$push': {'aliases': 'Alias 2'}}) |
这将搜索别名" Allen Dingus",并将新条目添加到数组中。对于您的示例文档,这将导致:
1 2 3 4 5 6 7 8 9 | { "_id": ..., "name":"Joe Edwards", "aliases": [ "Allen Dingus", "Edward McPickles", "Alias 2" ] } |