MongoDB插入对象过后原对象被更改

Written by    00:15 April 6, 2016 

今天发现了MongoDB中一个很奇怪的设计(或者说是坑。。。)

我在向MongoDB中插入一个对象的时候,不光数据库中新建的Document会自动生成一个Object ID,这个Object ID还会自动插入到原对象里面去,如下所示:

这么一来的话,如果我想基于已经插入的对象修改然后再次插入的话就会报E11000 duplicate key error,实在是想不清楚这么设计的好处在哪里。。。

如果需要在已经插入的对象的基础上修改然后再次插入为一个新的Document,那么最好是插入之前删掉对象中的_id key,或者在Python中使用copy()函数复制插入:

 

Category : experience

Tags :