mongodb与mongoose回顾笔记
mongodb是NOSQL数据库,Not Only SQL。面向集合的存储数据,不会像关系型数据库那样,需要固定的数据结构,一旦确定后期就很难修改。而mongodb的集合就相当于关系型数据库的表,存储的数据方式是以json的方式存储的。
总结:mongodb的最大特别优势就是--自由。
mongoose是nodejs中来操作mongodb的一个模块。
mongoose使用的一些语法和mongodb自身的一些语法不同。比如,在mongodb中插入一条数据使用的是db.[Collection].insert()
,而在mongoose中插入数据使用的是creat()
方法,这一点我自己应该格外注意一下。
下面,我会在mongodb和mongoose中来回增删改查数据。
数据库基本操作
use xxx
打开/创建xxx数据库db.xxx.???()
对某个数据库的xxx集合进行???操作db.dropDatabase()
删除数据库db.xxx.drop()
删除xxx集合- mongoose连接数据库
mongoose,connect('mongodb://[username:password@]host1[:port1][,host2[:port2],…[,hostN[:portN]]][/[database][?options]]')
- mongodb数据库不需要刻意的创建集合,在我们插入数据的时候,会为我们自动创建;
- 这里,特别需要注意的是,mongoose连接数据库集合时,默认情况下会为我们的集合名添加一个s,作为复数。
我查阅资料找到了一些解决办法,经过测试,可以使用;
添加数据
db.xxx.insert()
下面两个方法的结合体db.xxx.insertOne()
插入一条数据,不能为数组db.xxx.insertMany()
插入多条数据,必须是数组Model.create()
mongoose中插入数据的方法,和insert类似,支持一条或多条数据的插入
查询数据
db.xxx.find()
查询所有符合条件的数据,支持空参,返回全部数据db.xxx.findOne()
查询第一条符合条件的数据,支持空参,返回第一条数据- mongoose的查询数据方法也相同,只是需要填写一个回调函数,参数为
(err,data)
条件操作符
limit
skip
sort
分别是显示显示个数、跳过几个元素、排序,并且切换顺序都没有任何影响- 在mongoose内使用的情况
修改数据
db.xxx.update
默认情况下修改一条数据,及时匹配到多个,如果需要修改多个,需要在第二参数的对象multi
属性修改为true
删除数据
db.xxx.remove()
还有更多的小结,一下子想不起来了,后期再有空修改增补吧。
参考:
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。