MongoDB是文档存储NoSQL数据库,而不是键值对和列存储NoSQL数据库,是目前最成熟可靠的NoSQL数据库。除了高效率、易扩展性和快速之外,MongoDB使用类似JavaScript的语言开发接口。
5.1 简单且正确地安装MongoDB
http://www.mongodb.org/
https://docs.mongodb.com/master/tutorial/install-mongodb-on-ubuntu/
mkdir -p /data/db //创建一个数据文件
sudo chown `id -u` /data/db/
5.2 如何运行Mongo服务
$ mongod
http://localhost:27017/
http://localhost:28017/
5.3 用控制台操作数据
> db.test.save( {a:1} )
WriteResult({ "nInserted" : 1 })
> db.test.find()
{ "_id" : ObjectId("5a57292be14e6a7aa446d496"), "a" : 1 }
5.4 MongoDB shell命令介绍
> show dbs
> use db_name
> show collections: //输出选择出的数据库集合列表
> db.collection_name.find(query); //查找所有匹配条件的数据
> db.collection_name.findOne(query); //查找一条匹配条件的数据
> db.collection_name.insert(document) //插入一条数据
> db.collection_name.save(document); //保存一条数据到
> db.collection_name.update(query, {$set: data}); //用data对象的值更新匹配条件
> db.collection_name.remove(query); //删除所有匹配条件的数据
> printjson(document); //输出参数文档
5.5 简单的Node.js的MongoDB驱动示例
$ npm install mongodb@1.3.23
以下步骤:
- 声明依赖关系
- 定义数据库主机和端口
- 建立数据库连接
- 创建数据库文档
- 输出一个新创建的文档/对象
mongo-native-insert.js
const mongo = require('mongodb')
const dbHost = '192.168.200.158'
const dbPort = 27017
const {Db, Server} = mongo
const db = new Db('local',
new Server(dbHost, dbPort),
{safe: true}
)
db.open((error, dbConnection) => {
if (error) {
console.error(error)
return process.exit(1)
}
console.log('db state: ', db._state)
const item = {
name: 'Azat'
}
dbConnection.collection('messages').insert(item, (error, document) => {
if (error) {
console.error(error)
return process.exit(1)
}
console.info('created/inserted: ', document)
db.close()
process.exit(0)
})
})
mongo-native.js
const mongo = require('mongodb')
const dbHost = '192.168.200.158'
const dbPort = 27017
const {Db, Server} = mongo
const db = new Db('local', new Server(dbHost, dbPort), {safe: true})
db.open((error, dbConnection) => {
if (error) {
console.error(error)
process.exit(1)
}
console.log('db state: ', db._state)
dbConnection.collection('messages').findOne({}, (error, item) => {
if (error) {
console.error(error)
process.exit(1)
}
console.info('findOne: ', item)
item.text = 'hi'
var id = item._id.toString() // we can store ID in a string
console.info('before saving: ', item)
dbConnection
.collection('messages')
.save(item, (error, document) => {
if (error) {
console.error(error)
return process.exit(1)
}
console.info('save: ', document)
dbConnection.collection('messages')
.find({_id: new mongo.ObjectID(id)})
.toArray((error, documents) => {
if (error) {
console.error(error)
return process.exit(1)
}
console.info('find: ', documents)
db.close()
process.exit(0)
}
)
})
})
})
$ node mongo-native-insert
$ node mongo-native
5.6 主要的Mongoskin方法
Mongoskin比MongDB的原生驱动提供更好的API.
$ npm install mongoskin@0.6.1
5.7 项目:用Mongoskin把博客数据存储到MongoDB中
P120
在MongoDB中添加seed数据
写Mocha测试
添加持久连接
本文介绍了MongoDB的基础安装与配置方法,并提供了通过控制台进行基本数据操作的示例。此外,还展示了如何利用Node.js与Mongoskin驱动实现更高效的数据交互。

被折叠的 条评论
为什么被折叠?



