我这里使用的数据库可视化工具是RoBo 3T社区版作为展示。
db.collection.insert()方法,向集合内传入一个或多个文档,一个文档的时候传的是对象,多个文档传的是数组。
效果图 :
-
当我们向集合中插入文档时,如果没有给文档指定_id属性,则mongoDB数据库会默认自动为文档添加_id属性,并且该属性用来作为文档的唯一标识,就像我们的身份证一样,唯一的且不会重复。(如下图所示)。
-
ObjectId的生成原理(如下图)。
-
实际上,我们自己也可以调用ObjectId()方法来创建一个时间戳,这个时间戳它也是唯一的,不会出现重复的情况,这个时间戳的存在,确保了我们的数据唯一性。(如下图)。
-
实际上,这样的时间戳可读性不是很高,所以_id属性我们也可以自己指定,使用自定义命名的标识符,方便我们可读。
- 但我们一般使用默认的_id属性匹配的时间戳即可。如果我们指定了_id属性,数据库就不会再默认添时间戳加了。
db.collection.insertOne()方法,插入一个文档对象。
db.collection.insertMany()方法,插入多个文档对象。
实际上,db.collection.insertOne()方法和db.collection.insertMany()方法都是对db.collection.insert()方法的拆分
db.collection.insertOne()方法和db.collection.insertMany()方法,语义上更加清晰,会告诉我们传几个文档对象,而db.collection.insert()方法则不明确,可以是一个文档对象,也可以是多个,总的来说,这三个方法本质上没多大区别。
网友评论