MongoDB基础
来源:互联网 发布:松下tda200中文软件 编辑:程序博客网 时间:2024/06/02 06:09
MongoDB 概念解析
Sql
mongoDB
解释说明
Database
Database
数据库
Table
Collection
数据库表/集合
Row
Document
数据记录行/文档
Column
Field
数据字段/域
Index
Index
索引
Table joins
表链接,mongo不支持
Primary key
Primary key
主键,mongo 默认_id为主键
MongoDB 比较符
操作
格式
范例
Sql
等于
{‘key’:num}
Db.collection_name.find({‘key’:num})
Where key = num
小于
{‘key’:{$lt:num}}
Db.collection_name.find({‘key’:{$lt:num}})
Where key < num
小于或等于
{‘key’:{$lte:num}}
Db.collection_name.find({‘key’:{$lte:num}})
Where key <= num
大于
{‘key’:{$gt:num}}
Db.collection_name.find({‘key’:{$gt:num}})
Where key > num
小于或等于
{‘key’:{$gte:num}}
Db.collection_name.find({‘key’:{$gte:num}})
Where key >= num
不等于
{‘key’:{$ne:num}}
Db.collection_name.find({‘key’:{$ne:num}})
Where key != num
MongoDB and、or
#and
<query>:{‘key1’:’value’,’key2’:’value2’}
#or
<query>:$or:[{‘key1’:’value’},{’key2’:’value2’}]
#or+and
<query>:{‘key1’:’value’,’key2’:’value2’},$or:[{‘key3’:’value3’},{’key4’:’value4’}]
创建数据库
#创建数据库(进入数据库)
Use database_name
#查看所在数据库
Db
#添加数据,使数据库持久化
Db.database_name.insert({‘key’:’value’})
#显示所有数据库
Show dbs
Ps1:如果只创建没有数据,不会在所有数据显示。
删除数据库
#显示所有数据库
Show dbs
#进入数据库
Use database_name
#删除数据库
Db.dropDatabase()
删除集合
Db.collection.drop()
插入文档
#定义bean对象
Document=({
‘key’:’value’,
‘key2’:’value2’
})
#插入文档
Db.collection_name.insert(document)
Ps1:save()方法如果指定_id会更新指定_id的数据
#单独插入一条文档(3.2)
Var document = Db.collection_name.insertOne({‘key’:’value’})
#显示插入是否成功及id
document
#批量插入文档(3.2)
Var res = Db.collection_name.insertMany([{‘one’:1},{’tow’:2}])
#显示插入是否成功及数组的id
res
更新文档
Db.collection_name.update(
<query>,
<update>,
{
upsert:<boolean>,
multi:<boolean>,
writeConcern:<boolean>
}
)
query: update的查询条件,类似sql update查询内where后面的。
update: update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的
upsert: 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
multi: 可选,mongodb默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
writeConcern:可选,抛出异常的级别。
#只更新第一个匹配的文档
Db.collection_name.update({‘key’:’value’},{$set:{‘new_key’:’new_value’}},)
#更新所有匹配的文档
Db.collection_name.update({‘key’:’value’},{$set:{‘new_key’:’new_value’}},false,true)
#若无匹配数据则添加
Db.collection_name.update({‘key’: ’value’}{$set:{‘new_key’:’new_value’}},true,false)
#更新一条语句(3.2)
Db.collection_name.updateOne({‘key’:’value’}{$set:{‘new_key’:’new_value’}})
#更新多条语句(3.2)
Db.collection_name.updateMany({‘key’: ’value’}{$set:{‘new_key’:’new_value’}})
删除文档
Db.collection_name.remove(
<query>,
{
justOne:<boolean>,
writeConcern:<boolean>
}
)
justOne: (可选)如果设为 true或 1,则只删除一个文档。
#删除文档(过时)
Db.collection_name.remove({‘key’:’value’})
#删除集合内所有文档
Db.collection_name.deleteMany({})
#删除集合内所有匹配key:vlaue的文档
Db.collection_name.deleteMany({‘key’:’value’})
#删除集合内第一个匹配key:vlaue的文档
Db.collection_name.deleteOne({‘key’:’value’})
查询文档
Db.collection_name.find(<query>)
#查询所有文档
Db.collection_name.find()
#查询单个文档
Db.collection_name.findOne()
#美化文档
Db.collection_name.find().pertty()
$type操作符
类型
数字
备注
Double
1
数值类型
String
2
字符串类型
Object
3
对象类型
Array
4
数组类型
Binary data
5
二进制对象
Boolean
8
布尔
Date
9
日期
Null
10
空
Limit()方法和Skip()方法(分页)
#limit同sql中的limit,限制查询数量
Db.collection_name.find().limit(1)
#skip方法表示跳过多少条数据
Db.collection_name.find().limit(1).skip(1) #跳过一条数据并且只读取一条数据
Sort()方法(排序)
#limit同sql中的limit,限制查询数量
Db.collection_name.find().sort({‘key’:1})
Pa:1为升序,-1为降序。
索引
ensureIndex()方法
Db.collection_name.ensureIndex({‘key’:1})
参数
类型
描述
Background
Boolean
是否阻塞数据库创建索引(false)
Unique
Boolean
是否唯一索引(false)
Name
String
索引名称
dropDups
Boolean
是否删除重复
Sparse
Boolean
是否有空数据索引
Weights
Document
权重 1-999
聚合
aggregate()方法
Db.collection_name.aggregate(aggregate_type)
表达式
描述
实例
$sun
计算总和
Db.collection_name.aggregate($group:{_id:null,count:{$sum:1}})
$avg
计算平均值
Db.collection_name.aggregate($group:{_id:null,avg:{$avg:’key’}})
$min
计算最小值
$max
计算最大值
$push
结果变数组
$addToSet
$first
获取第一个文档
$last
获取最后一个文档
复制
暂时不用
分片
暂时不用
备份
暂时不用
- MongoDB基础
- Mongodb 基础
- mongodb基础
- MongoDB基础
- mongodb基础
- mongoDb基础
- MongoDB基础
- MongoDB 基础
- mongodb基础
- MongoDB基础
- mongodb基础
- mongodb基础
- MongoDB基础
- MongoDB基础
- Mongodb基础
- MongoDB基础
- MongoDB基础
- mongoDB基础
- jqgrid三种编辑数据的方式
- 移动端html5,JS判断客户端是否是iOS或者Android手机移动端
- 在 Azure 虚拟机中配置 Always On 可用性组(经典)
- 数据类型的转换
- MacBook端口号被占用如何解决
- MongoDB基础
- Java中异常处理-finally和return执行顺序
- SLF4J日志的使用
- 解决CentOS(6和7版本),/etc/sysconfig/下没有iptables的问题
- solr的软硬提交
- Nginx安装
- matlab符号运算(一)
- 动态库与静态库的区别
- linux下使用SVN上传项目