monto
- 首先要说说monto,谐音馒头,比较好记也比较有意思,这实际上是我写的一个工具,用于处理mongodb数据库的,在nodejs里面使用monto来处理mongodb,可能你会说,不是已经有mongoose了吗,但是呢,我有一个不太喜欢mongoose的一个点,那就是他的模型对象,每次访问数据库都要创建一个模型对象,真的很烦实话说,相比之下我感觉原生的mongodb操作挺好的,但是唯一的弊端就是每一次做数据的更新都要重新写一遍链接数据库的代码,真的很烦,于是呢,我就把它们封装了起来,成为一个更加简洁的工具库,这就是monto
- 废话不多说,直接讲一讲怎么使用,实际上,你可以直接看我的ReadME文件,链接地址如下:
https://github.com/shataniya/monto
- 或者你可以去npm官网直接看使用教程:
https://www.npmjs.com/package/monto
- 现在详细讲讲使用的方法:
连接数据库
const monto = require("monto")
const db = monto("mongodb://localhost/dm")
db.connection(function(){
console.log("Database connection successful!")
})
- 终端打印出Database connection successful说明数据库连接成功了
- 接下来就可以直接操作数据库了
对数据库的增删改查
增加数据:
db.insertOne("users",{
name:"zhangsan",
age:12,
gender:"man"
}).then(function(){
console.log("insert successful")
})
- 这段代码的意思就是向users这个表中添加数据,会返回一个promise对象:
- 想修改数据也很简单:
db.updateOne("users",{name:"zhangsan"},{$set:{age:20}}).then(function(){
console.log("mModified success")
})
查找数据
db.findMany("users",{},true).then(function(docs){
console.log(docs)
})
- 可以看见返回的是一个数组
- 这里有一个需要注意的点,那就是第三个参数必须是true,之所以有这第三个参数,是因为要实现链式调用,因为查找数据的时候,可能会用上skip,limit,sort之类,所以true实际上可以理解为终止标志,例如,如果你想查找数据看的前三个数据,可以这样:
db.findMany("danmus",{}).limit(3,true).then(function(docs){
console.log(docs)
})
- 如果你想跨越2个数据然后只显示三个数据,可以这样:
db.findMany("danmus",{}).skip(2).limit(3,true).then(function(docs){
console.log(docs)
})
- 如果你想了解更多,可以直接去看这个表:
- 实际上,我还保留了模型对象,monto是可以设置模型对象的,毕竟mongoose的模型对象还是很不错的,之后会讲讲模型对象怎么使用