![MongoDB进阶与实战:微服务整合、性能优化、架构管理](https://wfqqreader-1252317822.image.myqcloud.com/cover/697/38209697/b_38209697.jpg)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
2.3 插入文档
首先,尝试写入一条数据:
![](https://epubservercos.yuewen.com/6F449D/20118171608699906/epubprivate/OEBPS/Images/40827_37_2.jpg?sign=1738795045-dIy9UP2B0KxLHndLSVL9l6BaNVCclOe3-0-19d0274dc2d9fffadeb4f6476bc2075d)
这里,use appdb用于切换到appdb数据库,接着向当前库的book集合执行一个insert操作。成功之后,shell返回了结果,其中nInserted=1表示写入了一条数据。
这里是不是少了点什么?假定你有使用关系型数据库的经验,则可能会记得正确的顺序应该是:
● 创建数据库。
● 创建表。
● 插入数据。
然而在MongoDB中,前面的两个步骤都不是必须的,数据库、集合都是动态创建的。在首次写入数据后,我们就可以通过show collections看到对应的集合被生成了,如下:
![](https://epubservercos.yuewen.com/6F449D/20118171608699906/epubprivate/OEBPS/Images/40827_37_3.jpg?sign=1738795045-n5JBVvj8twZun8J521MDRofSycqUaJDV-0-70e6eb592da232189656ef834f4e9d29)
接下来,还可以继续向book集合中写入更多的数据,如下面这段代码:
![](https://epubservercos.yuewen.com/6F449D/20118171608699906/epubprivate/OEBPS/Images/40827_37_4.jpg?sign=1738795045-gql5hSY1SrJLI92INy2MrW9OCwag6VVf-0-d5aea4726aab31dc87aeed90be62646d)
![](https://epubservercos.yuewen.com/6F449D/20118171608699906/epubprivate/OEBPS/Images/40827_38_1.jpg?sign=1738795045-OXd8NjfPwJr8V2f7i3Oo4eU1nSXn6IEg-0-ca92efbcb321e11a4b5e6964e4893028)
这里会向book集合中写入50条随机数据,我们可以使用insertMany命令一次性写入全部文档,通常可以获得更高的插入效率。
执行上述代码,响应结果如下:
![](https://epubservercos.yuewen.com/6F449D/20118171608699906/epubprivate/OEBPS/Images/40827_38_2.jpg?sign=1738795045-nfMjuqZGYLIH5UiNtPZYgoTbYBN0lp7j-0-b1c8ebebc3f59908a71be06e836ddeb6)
![](https://epubservercos.yuewen.com/6F449D/20118171608699906/epubprivate/OEBPS/Images/40827_39_1.jpg?sign=1738795045-5d6IGZjJSPlyCcKJNYxnmTZuBHAPhEoq-0-4ceecf3a0307dfe68bcd7f24ed50ed44)
从结果中可以看到,MongoDB为每个文档自动创建的id字段,默认使用的是ObjectId类型。当然,我们也可以自己指定这个id,关于ObjectId会在后面的章节中介绍。