Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python MongoDB和PyMongo-如何在单个文档字段中压缩字符串_Python_String_Mongodb_Pymongo_Concat - Fatal编程技术网

Python MongoDB和PyMongo-如何在单个文档字段中压缩字符串

Python MongoDB和PyMongo-如何在单个文档字段中压缩字符串,python,string,mongodb,pymongo,concat,Python,String,Mongodb,Pymongo,Concat,我是mongoDb的新手,字符串字段“增量”的问题一直困扰着我)。我收集了以下文件“currentactivities”: 我希望在“data”字段中添加新的附加字符串值,例如,添加以下数据: “njsadklfu3j2n1km121” 因此,更新后的文档应如下所示: document={ "name": "App Name", "total Active": "10", "total Inactive": "60" "data": "Some data gen

我是mongoDb的新手,字符串字段“增量”的问题一直困扰着我)。我收集了以下文件“currentactivities”:

我希望在“data”字段中添加新的附加字符串值,例如,添加以下数据:

“njsadklfu3j2n1km121”

因此,更新后的文档应如下所示:

document={
    "name": "App  Name",
    "total Active": "10",
    "total Inactive": "60"
    "data": "Some data generated by app: 2ndkjasndu2iqeqjsmanjsadklfu3j2n1km121" 
}
我正在使用Python2.7、PyMongo和MongoDB3.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))

我无法下载字段值,即客户端的字符串,因为整个“数据”字段将包含太多数据,无法在客户端和服务器之间发送。我只想将差异添加到数据字段中。有人知道如何在PyMongo中解决这个问题吗?

目前,在更新过程中不能使用文档字段的旧值,请参阅此票据。您必须通过光标浏览记录并逐个更新记录。例如:

cursor = currentactivities.find({"name": "App Name"})

for document in cursor:
    currentactivities..update_one({"_id": document["_id"]},
   {"$set": {"dataNew": document["data"]+ "njsadklfu3j2n1km121"}}

如果我知道你想用新的“数据”值更新你的文档。正确的?是否要在更新操作后取消设置“dataNew”字段?缺少“数据”的文档如何处理?您使用
upsert=True的任何特定原因
cursor = currentactivities.find({"name": "App Name"})

for document in cursor:
    currentactivities..update_one({"_id": document["_id"]},
   {"$set": {"dataNew": document["data"]+ "njsadklfu3j2n1km121"}}