![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=1739135651-6Mfiqb7cdbQpImS5v6egyuFeT3TJBEit-0-8e38d13adf6855a59ba2798673428771)
这里,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=1739135651-UgvW4xf8baNioEokicH6TLkl4n1bsT6e-0-a021c40a866109ee2f34ecbbfae07c9f)
接下来,还可以继续向book集合中写入更多的数据,如下面这段代码:
![](https://epubservercos.yuewen.com/6F449D/20118171608699906/epubprivate/OEBPS/Images/40827_37_4.jpg?sign=1739135651-sFOwk6TICsEIao7w60pzMzrLBZfP0mQX-0-db8fc0cf35cd548c153ebe0e4a11c115)
![](https://epubservercos.yuewen.com/6F449D/20118171608699906/epubprivate/OEBPS/Images/40827_38_1.jpg?sign=1739135651-VVjaJ1nV7PkqEeH1gJ5IHyHPAqBHGYv3-0-12a885fe7f6bb220971db85134b1e287)
这里会向book集合中写入50条随机数据,我们可以使用insertMany命令一次性写入全部文档,通常可以获得更高的插入效率。
执行上述代码,响应结果如下:
![](https://epubservercos.yuewen.com/6F449D/20118171608699906/epubprivate/OEBPS/Images/40827_38_2.jpg?sign=1739135651-aIubtjMKf9o73e6HdYw15Ajek3GjEyVX-0-65a065049a732f7a67f7ef06edbb1721)
![](https://epubservercos.yuewen.com/6F449D/20118171608699906/epubprivate/OEBPS/Images/40827_39_1.jpg?sign=1739135651-DjibjmuT2c05vcdp95YG5uxT1BZFU2HP-0-50809b7d4f9443ab337b3bd39071264d)
从结果中可以看到,MongoDB为每个文档自动创建的id字段,默认使用的是ObjectId类型。当然,我们也可以自己指定这个id,关于ObjectId会在后面的章节中介绍。