Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/281.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.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_Mongodb_Pymongo - Fatal编程技术网

Python 在mongodb中插入与Pymongo不重复的数据

Python 在mongodb中插入与Pymongo不重复的数据,python,mongodb,pymongo,Python,Mongodb,Pymongo,现在,我尝试用pymongo在mongoldb中插入数据 get_db().users.update({'_id':ObjectId(session['user_id'])},{'$push':{'hme':ObjectId(id)}},upsert=True) 但是,该方法会生成重复的ObjectID。请在尝试查找之前找到一个() 更好的方法请求 可能使用forEach.but语法错误 yang如果hme键持有ObjectIds的数组,则可以尝试操作符而不是,因为它会向数组添加值,除非该值已

现在,我尝试用pymongo在mongoldb中插入数据

get_db().users.update({'_id':ObjectId(session['user_id'])},{'$push':{'hme':ObjectId(id)}},upsert=True)
但是,该方法会生成重复的ObjectID。请在尝试查找之前找到一个()

更好的方法请求

可能使用forEach.but语法错误


yang

如果
hme
键持有
ObjectId
s的数组,则可以尝试操作符而不是,因为它会向数组添加值,除非该值已经存在,在这种情况下,不会对该数组执行任何操作,因此它只会确保不会将重复项添加到集合中,并且不会影响现有的重复元素:

get_db().users.update(
   {'_id':ObjectId(session['user_id'])},
   {
       '$addToSet':{
           'hme':ObjectId(id)
       }
   },
   upsert=True
)

如何结束这个问题?堆栈溢出问题已完成
get_db().users.update(
   {'_id':ObjectId(session['user_id'])},
   {
       '$addToSet':{
           'hme':ObjectId(id)
       }
   },
   upsert=True
)