Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.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-PyMongo插入和更新_Python_Mongodb - Fatal编程技术网

Python-PyMongo插入和更新

Python-PyMongo插入和更新,python,mongodb,Python,Mongodb,我正在尝试在我的座位上执行插入和更新操作,而不插入重复数据 我的集合具有id属性,我对该属性进行了操作createIndex(),以将id属性作为唯一属性传递。这是因为每次我试图通过Python代码输入新数据时,都会出现以下消息: pymongo.errors.DuplicateKeyError: E11000 duplicate key error collection: test index: id_1 dup key: { : "400728540046889_11087831159080

我正在尝试在我的座位上执行插入和更新操作,而不插入重复数据

我的集合具有id属性,我对该属性进行了操作
createIndex()
,以将id属性作为唯一属性传递。这是因为每次我试图通过Python代码输入新数据时,都会出现以下消息:

pymongo.errors.DuplicateKeyError: E11000 duplicate key error collection: test index: id_1 dup key: { : "400728540046889_1108783115908091" }
好的,mongoDB不允许输入已经存储在银行中的数据。但是我需要我的代码继续运行,忽略银行中已经存在的新数据,并继续输入新数据。工作令规定:

在银行中运行script-Insert命令-Error:Dup Key

我要找的是:

在银行中运行script-Insert命令-Error:Dup Key(忽略此键)-继续运行脚本查找新数据并插入

一、 尝试使用upsert的更新方法,使用命令:

db.myDB.update({'id':status['id']},status,True)
我们有:

  • 状态:包含我的数据
  • Id:状态字段,包含文本的Id
问题是:他输入了具有相同id的重复数据,只是现在将所有数据都放在mongoDB的_id:ObjectId下

我如何使用一种方法来输入新数据,而不是重新输入银行中已经存在的数据?

请尝试以下操作:

try:
    # insertion logic
except DuplicateKeyError as err:
    continue;  # will continue though DuplicateKeyError is raised.
尝试如下:

try:
    # insertion logic
except DuplicateKeyError as err:
    continue;  # will continue though DuplicateKeyError is raised.

浏览链接了解基本知识。您将容易出错的代码(插入操作)保留在try块中,并在except块中捕获错误/异常(这里是DuplicateKeyError)。在Exception块中,如果出现DuplicateKeyError,请使用continue(python关键字)运行代码。。。。除了DuplicateKeyError as err:continue?浏览链接了解基本信息。您将容易出错的代码(插入操作)保留在try块中,并在except块中捕获错误/异常(这里是DuplicateKeyError)。在Exception块中,如果出现DuplicateKeyError,请使用continue(python关键字)运行代码。。。。除了DuplicateKeyError as err:continue?Edit:Ok,错误是
pymongo.errors.DuplicateKeyError
,但即使在这种情况下,新数据也不会输入到mongo的集合中。正在输入新数据,但不符合顺序(最新->较旧)。它们被插入到集合的中间为什么这对您很重要(文档的存储顺序),您可以使用排序功能按您想要的顺序检索记录。编辑:好的,错误是
pymongo.errors.DuplicateKeyError
,但即使在这种情况下,mongo集合中未输入新数据。正在输入新数据,但不符合顺序(最新->较旧)。它们被插入到集合的中间为什么这对您很重要(文档的存储顺序),您可以使用排序功能按所需的顺序检索记录。