MongoDB 和 PyMongo - 如何在单个文档字段中连接字符串
MongoDB and PyMongo - how to concat string inside single document field
我是 mongoDb 的新手,我被字符串字段 "incrementation" 的问题困住了 ;)。我在集合 "currentactivities":
中有以下文档
document={
"name": "App Name",
"total Active": "10",
"total Inactive": "60"
"data": "Some data generated by app: 2ndkjasndu2iqeqjsma"
}
我想附加 "data" 字段,每天多次使用新的附加字符串值,例如数据如下:
"njsadklfu3j2n1km121"
所以更新后文档应该如下所示:
document={
"name": "App Name",
"total Active": "10",
"total Inactive": "60"
"data": "Some data generated by app: 2ndkjasndu2iqeqjsmanjsadklfu3j2n1km121"
}
我使用的是 Python 2.7、PyMongo 和 MongoDB 3.0。我尝试使用新的临时字符串数据插入附加字段并使用聚合框架,但它不起作用。
currentactivities.update(
{"name": "App Name"},
{"$set": {"dataNew": "njsadklfu3j2n1km121"}
}, upsert=True)
pipeline = [
{ "$project":
{
"name":1,
"total Active":1,
"total Inactive":1,
"data": {"$concat": ["$data" , "$dataNew"] }
}
}
]
list(currentactivities.aggregate(pipeline))
我无法下载字段值,在客户端连接字符串,因为整个 "data" 字段将包含太多数据,无法在客户端 <> 服务器之间发送。我只想将差异添加到数据字段中。有人知道如何在 PyMongo 中解决这个问题吗?
目前您不能在更新期间使用文档字段的旧值,请参阅此 JIRA 票证。您将不得不浏览记录并一项一项地更新记录。例如:
cursor = currentactivities.find({"name": "App Name"})
for document in cursor:
currentactivities..update_one({"_id": document["_id"]},
{"$set": {"dataNew": document["data"]+ "njsadklfu3j2n1km121"}}
我是 mongoDb 的新手,我被字符串字段 "incrementation" 的问题困住了 ;)。我在集合 "currentactivities":
中有以下文档document={
"name": "App Name",
"total Active": "10",
"total Inactive": "60"
"data": "Some data generated by app: 2ndkjasndu2iqeqjsma"
}
我想附加 "data" 字段,每天多次使用新的附加字符串值,例如数据如下:
"njsadklfu3j2n1km121"
所以更新后文档应该如下所示:
document={
"name": "App Name",
"total Active": "10",
"total Inactive": "60"
"data": "Some data generated by app: 2ndkjasndu2iqeqjsmanjsadklfu3j2n1km121"
}
我使用的是 Python 2.7、PyMongo 和 MongoDB 3.0。我尝试使用新的临时字符串数据插入附加字段并使用聚合框架,但它不起作用。
currentactivities.update(
{"name": "App Name"},
{"$set": {"dataNew": "njsadklfu3j2n1km121"}
}, upsert=True)
pipeline = [
{ "$project":
{
"name":1,
"total Active":1,
"total Inactive":1,
"data": {"$concat": ["$data" , "$dataNew"] }
}
}
]
list(currentactivities.aggregate(pipeline))
我无法下载字段值,在客户端连接字符串,因为整个 "data" 字段将包含太多数据,无法在客户端 <> 服务器之间发送。我只想将差异添加到数据字段中。有人知道如何在 PyMongo 中解决这个问题吗?
目前您不能在更新期间使用文档字段的旧值,请参阅此 JIRA 票证。您将不得不浏览记录并一项一项地更新记录。例如:
cursor = currentactivities.find({"name": "App Name"})
for document in cursor:
currentactivities..update_one({"_id": document["_id"]},
{"$set": {"dataNew": document["data"]+ "njsadklfu3j2n1km121"}}