Mongodb 简明便利版

Mongodb简明便利版

mongodb作为NoSQL的代表,在处理用户个人信息,地理位置信息,用户生成数据以及用户操作日志方面拥有着得天独厚的优势.
MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成,文档类似于JSON 对象,字段值可以包含其他文档,数组及文档数组.

1
2
3
4
5
{
username: 'eidonjoe',
age: 24,
sex: '男'
}

更多其他优势请移步=>mongodb官网

安装

只针对mac平台
推荐使用brew安装,省时省力,如果没安装brew的请移步brew官网

1
brew install mongodb

安装成功后你可以使用mongod命令来启动mongodb
这时候控制台会输出waiting for connections on port 27017,表明mongodb在27017(mongodb默认启动端口)端口启动成功
然后新开一个shell窗口,输入 mongodb://localhost:27017来连接你本地的mongodb数据库
ps:如果你觉得shell的方式不能使你清晰明了的观察到整个数据库的结构,这时候你可能需要一个可视化工具Robomongo,你可以在这上面创建mongodb连接,创建数据库,操作集合与数据,相比shell方式来讲,图形化管理更能节省时间成本,但是不建议管理线上数据库,正是因为操作的便利性所以会给数据管理带来一定的风险

操作

首先选择or创建数据库 use database

database=>所要创建的数据库名称

  • 查 find || findOne db.collection.find(criteria),

collection=>对应的所要查询的集合名字,criteria=>查询条件

查询条件也以一个对象的方式传入,即{key: value}的形式,

  • AND操作 criteria1,criteria2
  • OR操作 $or:[criteria1,criteria2]
  • 条件操作(>) 大于 - $gt,(<) 小于 - $lt,(>=) 大于等于 - $gte,(<= ) 小于等于 - $lte

usage:
{“查询字段名”: {条件操作符: 值}}
eg:

1
2
var criteria = {"age": {$gt: 24}}
db.collection.find(criteria) // 查询年龄大于24的文档

  • 改 update db.collection.update(criteria, doc[, upsert, muti])

collection=>对应的所要更新的集合名字,criteria(必需)=>查询条件,doc(必需)=>所要更新的文档,
upsert(可选)=>若文档不存在是否创建新文档, muti(可选)=>mongodb 默认是false,只更新找到的第一条记录

usage:
{“查询字段名”: “值”},{$set: {“更新字段”: “值”}}

eg:

1
2
3
var criteria = {"age": 24}
var doc = {$set: {"username": "eidon"}}
db.collection.update(criteria, doc) // 更新年龄为24的文档

更新数组:

1
2
3
var criteria = {"age": 24}
var doc = {$push: {"phone": "12345678900"}}
db.collection.update(criteria, doc) // 向phone字段中增加一个12345678900的值,若不存在phone字段将创建该字段且该字段为数组

联合操作

1
2
3
4
5
6
7
db.collection.find().count() // 计算文档数目
db.collection.find().sort({"filed": 1}) // 是文档根据指定字段进行排序=> 1 正序 -1 倒序
db.collection.find().skip(num) // 跳过指定条数的文档
db.collection.find().limit(num) // 查询限制的文档数量
// TODO
db.collection.aggregate() // mongodb 统计