安装配置
- 下载 mongoDB 2.0.43 ,并执行安装
安装位置与数据保存位置并无关系
npm install mongodb --save
- 可视化工具 robomongo 0.9.0
- 配置环境变量
常用命令
1. 启动数据库服务
保持cmd窗口开启状态,若关闭则会关闭数据库
- 命令:
mongod --dbpath [path]
- 参数:
--dbpath
数据存储的文件夹路径
2. 连接数据库
在新的cmd窗口下
- 命令:
mongo
3. 导入 JSON 文件
在非数据库操作状态下执行
- 命令:
mongoimport --db [dbName] --collection [collectionName] --file [filePath] --drop
- 参数:
--db
数据库名
--collection
集合名
--file
json 文件路径
--drop
可选,清空当前集合里的内容
4. 操作数据库
结构:mongo -> 数据库(db) -> 集合(collection) -> json对象
show dbs
列出所有数据库use [dbName]
选择数据库,如果不存在则创建db
查看当前数据库show collections
列出所有集合db.[collectionsName].insert(jsonData)
插入数据,collectionsName(集合名),若不存在则创建
// 在 student集合 中插入字段
db.student.insert({'name': 'hannah', 'age': 18})
db.dropDatabase()
删除当前所在数据库,无提示
直接执行db.[collectionsName].drop
删除集合db.[collectionsName].remove(jsonData)
删除指定字段(文档),返回删除数量
// 删除 student集合中 age 为 18 的所有字段
db.student.remove({'age': 18})
条件查询
db.[collectionsName].find()
// 列出 student集合 中的所有字段
db.student.find()
// 精确匹配
db.student.find({'name': 'hannah'})
// 多个条件
db.student.find({'name': 'hannah', 'age': 18})
// 大于条件
db.student.find({'age': {$gt: 18}})
// 小于条件
db.student.find({'age': {$lt: 18}})
// 或条件
db.student.find({$or:[{'age': 10}, {'age': 18}]})
// 排序 - 正序
db.student.find().sort("age": 1)
// 排序 - 反序
db.student.find().sort("age": -1)
// name按正序,age按反序
db.student.find().sort("name": 1, "age": -1)
Node.js 连接 MongoDB
const express = require("express");
const app = express();
// 连接数据库必须的对象
let mongoClient = require('mongodb').MongoClient;
app.get("/",function(req,res){
// 数据库地址,如果数据库名称不存在,则会创建
let url = "mongodb://127.0.0.1:27017/dbName";
mongoClient.connect(url, (err, db) => {
if (err) return console.log('连接数据库失败');
console.log('连接成功')
// 往 student集合 中插入数据
db.collection('student').insertOne({
"name" : "jack",
"age" : parseInt(Math.random() * 100 + 20)
},function(err, result){
if (err) return console.log('插入数据失败');
res.send(result);
// 关闭连接
db.close;
})
})
})
app.listen(3000)
mongoose 连接模型
npm install mongoose --save