import os , string , datetime ,pymongo;
conn = pymongo.Connection("127.0.0.1",27017);
db = conn.nn;
coll = db.nn_res;
value = dict(name="user1",num="1");
coll.save(value);
coll.insert(value);
View Code 执行脚本之后会发现,save和insert只执行了一条,而且跟insert和save出现的先后顺序没有关系,然后我去查看官网上关于save和insert的说明,发现save的部分解释是这样的:
db.collection.save(document)
Updates an existing document or inserts a new document, depending on its document parameter.
The save() method takes the following parameter:
Parameter Type Description
document document A document to save to the collection.
If the document does not contain an _id field, then the save() method performs an insert. During the operation, mongod will add to the document the _id field and assign it a unique ObjectId.
If the document contains an _id field, then the save() method performs an upsert, querying the collection on the _id field. If a document does not exist with the specified _id value, the save() method performs an insert. If a document exists with the specified _id value, the save() method performs an update that replaces all fields in the existing document with the fields from the document.
View Code 于是我猜想这个“_id"域是我们在创建对象的时候就被分配好了的,而不是在插入mongodb之后,数据库随机分配一个给我们的,于是我这样做: