mongoDB学习
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mongoDB学习相关的知识,希望对你有一定的参考价值。
"不知道为什么,就是想写一篇文章。。。"——某程序员
一直在说要学习mongoDB,前段时间终于学习了。今天刚好把mongo和nodeJS结合起来了,就写一篇文章总结一下。
先说一下mongoDB的安装,在mongo官网下载安装包(自行百度),或者在GitHub上面自行下载然后编译(过程省略。。。);
下载装好之后开始对mongoDB开始配置:
命令进入到mongoDB的安装目录,输入 mongod --dbpath 路径 --logpath 路径\*.log文件 --serviceName "服务名称" --install
解释一下上面命令的意思:
mongod(mongod.exe)表示mongoDB服务
--dbpath表示存放数据的文件
--logpath表示存放日志的文件,后缀是.log
--serviceName表示把mongodb添加到系统服务
--install 开始安装
装好之后运行bin目录下的mongo.exe,然后就可以对数据库进行操作了。
以上步骤比较粗糙,网上都能找到,就不过多的阐述,下面就mongoDB结合nodeJS进行操作。
首先下一个mongo的包,npm命令: npm install mongodb,
然后是数据库的连接、数据的CRUD(增删查改)。
数据库连接
mongodb包里面有个MongoClient就是mongoDB的实例,所以用MongoClient.connect(url,cb);
在这里url就是你mongoDB的集合,cb就是回调函数。
url一般都是mongodb://127.0.0.1:27017/集合名
在回调函数里面进行CRUD操作
增加操作
var insertData = function(db, data, cb) { var collection = db.collection("myMongo"); collection.insert(data, function(err, res) { if (err) { console.log("Error:" + err); return; } cb(res); }) }
删除操作
var removeData = function(db, data, cb) { var collection = db.collection("myMongo"); collection.remove(data, function(err, res) { if (err) { console.log("Error:" + err); return; } cb(res); }) }
查询操作
var findData = function(db, data, cb) { var collection = db.collection("myMongo"); collection.find(data).toArray(function(err, res) { if (err) { console.log("Error:" + err); return; } cb(res); }) }
修改操作
var updateData = function(db, data, updateDate, cb) { var collection = db.collection("myMongo"); collection.update(data, updateDate, function(err, res) { if (err) { console.log("Error:" + err); return; } cb(res); }) }
以上写得比较模糊,除了查询操作以外,其实代码都差不多,查询数据需要把查询得到的数据toArray。
写得比较杂乱无章,最后贴上完整代码:
var MongoClient = require(‘mongodb‘).MongoClient; var url = ‘mongodb://127.0.0.1:27017/myMongo‘; //数据库连接 MongoClient.connect(url, function(err, db) { if (err) throw err; console.log(‘数据库连接成功。。。‘); var data = [{ "name": "test3", "age": 23 }, { "name": "test4", "age": 24 }]; var data1 = { "age": 21 } var data2 = { "age": 22 } var data3 = { "name": "andy", "age": 30 } insertData(db, data, function(res) { console.log(res); db.close(); }) removeData(db, data1, function(res) { console.log(res) db.close(); }) findData(db, data2, function(res) { console.log(res) db.close(); }) updateData(db, data1, data3, function(res) { console.log(res); db.close(); }) }) //插入数据 var insertData = function(db, data, cb) { var collection = db.collection("myMongo"); collection.insert(data, function(err, res) { if (err) { console.log("Error:" + err); return; } cb(res); }) } //删除数据 var removeData = function(db, data, cb) { var collection = db.collection("myMongo"); collection.remove(data, function(err, res) { if (err) { console.log("Error:" + err); return; } cb(res); }) } //查询数据 var findData = function(db, data, cb) { var collection = db.collection("myMongo"); collection.find(data).toArray(function(err, res) { if (err) { console.log("Error:" + err); return; } cb(res); }) } //修改数据 var updateData = function(db, data, updateDate, cb) { var collection = db.collection("myMongo"); collection.update(data, updateDate, function(err, res) { if (err) { console.log("Error:" + err); return; } cb(res); }) }
以上全为个人总结,纯原创内容,转载请注明,谢谢。
以上是关于mongoDB学习的主要内容,如果未能解决你的问题,请参考以下文章
ios - Heroku 和 MongoDb 上的自定义解析服务器错误 3080:JSON 文本没有以数组或对象开头,并且允许未设置片段的选项