相关疑难解决方法(0)

MongoDB:使用同一文档中的数据更新文档

我有一个文档列表,每个文档都有lat和lon属性(等等).

{ 'lat': 1, 'lon': 2, someotherdata [...] } 
{ 'lat': 4, 'lon': 1, someotherdata [...] }
[...]
Run Code Online (Sandbox Code Playgroud)

我想修改它,使它看起来像这样:

{ 'coords': {'lat': 1, 'lon': 2}, someotherdata [...]} 
{ 'coords': {'lat': 4, 'lon': 1}, someotherdata [...]}
[...]
Run Code Online (Sandbox Code Playgroud)

到目前为止,我有这个:

db.events.update({}, {$set : {'coords': {'lat': db.events.lat, 'lon': db.events.lon}}}, false, true)
Run Code Online (Sandbox Code Playgroud)

但它将db.events.latdb.events.lon视为字符串.如何引用文档的属性?

干杯.

mongodb

74
推荐指数
3
解决办法
6万
查看次数

如何使用PyMongo迭代和更新文档?

我有一个简单的单客户端设置MongoDB和PyMongo 2.6.3.目标是迭代集合中的每个文档collection并更新(save)过程中的每个文档.我正在使用的方法大致如下:

cursor = collection.find({})
index = 0
count = cursor.count()
while index != count:
    doc = cursor[index]
    print 'updating doc ' + doc['name']
    # modify doc ..
    collection.save(doc)
    index += 1
cursor.close()
Run Code Online (Sandbox Code Playgroud)

问题是save显然正在修改游标中文档的顺序.例如,如果我的集合由3个文档组成(id为清楚起见,省略了):

{
    "name": "one"
}
{
    "name": "two"
}
{
    "name": "three"
}
Run Code Online (Sandbox Code Playgroud)

上述计划产出:

> updating doc one
> updating doc two
> updating doc two
Run Code Online (Sandbox Code Playgroud)

但是,如果collection.save(doc)删除该行,则输出变为:

> updating doc one
> updating doc two
> …
Run Code Online (Sandbox Code Playgroud)

python mongodb pymongo

9
推荐指数
2
解决办法
1万
查看次数

mongodb替换字符串的一部分

我有一个领域

"data" : {
        "user" : "derp",
        "id" : "xHOSTNAME_xderp"
Run Code Online (Sandbox Code Playgroud)

我想用xHOSTNAME_*替换所有文档到yHOSTNAME_.知道如何搜索和替换.我看到其他一些帖子同样相关,但似乎都没有效果.

mongodb

3
推荐指数
1
解决办法
1979
查看次数

标签 统计

mongodb ×3

pymongo ×1

python ×1