MongoDB应用详解

Posted ╭ 儛動嘚靈魂

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MongoDB应用详解相关的知识,希望对你有一定的参考价值。

mongodb是一个用来存储管理数据的软件

他是一个 c/s 架构的软件,是一个网络类型的软件
如果要是使用mongodb的话,首先需要开启mongodb的服务端,然后通过客户端软件去连接服务器

1.要创建一个当前应用的数据库:database
database - Excel
table - Sheet1 - 区分存储相同类型的数据的集合
row - document - 一条记录
column - field - 列,字段


MongoDB 数据类型

下表为MongoDB中常用的几种数据类型。
数据类型 描述
String 字符串。存储数据常用的数据类型。在 MongoDB 中,UTF-8 编码的字符串才是合法的。
Integer 整型数值。用于存储数值。根据你所采用的服务器,可分为 32 位或 64 位。
Boolean 布尔值。用于存储布尔值(真/假)。
Double 双精度浮点值。用于存储浮点值。
Min/Max keys 将一个值与 BSON(二进制的 JSON)元素的最低值和最高值相对比。
Arrays 用于将数组或列表或多个值存储为一个键。
Timestamp 时间戳。记录文档修改或添加的具体时间。
Object 用于内嵌文档。
Null 用于创建空值。
Symbol 符号。该数据类型基本上等同于字符串类型,但不同的是,它一般用于采用特殊符号类型的语言。
Date 日期时间。用 UNIX 时间格式来存储当前日期或时间。你可以指定自己的日期时间:创建 Date 对象,传入年月日信息。
Object ID 对象 ID。用于创建文档的 ID。
Binary Data 二进制数据。用于存储二进制数据。
Code 代码类型。用于在文档中存储 javascript 代码。
Regular expression 正则表达式类型。用于存储正则表达式。


命令:
db : 查看当前所在的数据库
show dbs : 显示所有数据库的列表
use <db名称> : 选择进入指定的db,如果数据库不存在,则会先创建,如果这个数据里面没有数据,可能显示不出来

插入:
db.<COLLECTION_NAME>.insert({}) : 向指定的集合(表)中插入一条数据,如果该集合不存在,则会自动创建


更新:
db.<COLLECTION_NAME>.update(
<query>,
<update>,
{
upsert: <boolean>,
multi: <boolean>,
writeConcern: <document>
}
)

query : update的查询条件,类似sql update查询内where后面的。
update : update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的
upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
writeConcern :可选,抛出异常的级别。

db.Users.update( {username:‘leo‘},{ $set:{age:36} } );

 

查询
db.COLLECTION_NAME.find()
db.COLLECTION_NAME.find().pretty() :格式化打印数据

1 等于 {<key>:<value>} db.col.find({"by":"菜鸟教程"}).pretty() where by = ‘菜鸟教程‘
2 小于 {<key>:{$lt:<value>}} db.col.find({"likes":{$lt:50}}).pretty() where likes < 50
3 小于或等于 {<key>:{$lte:<value>}} db.col.find({"likes":{$lte:50}}).pretty() where likes <= 50
4 大于 {<key>:{$gt:<value>}} db.col.find({"likes":{$gt:50}}).pretty() where likes > 50
5 大于或等于 {<key>:{$gte:<value>}} db.col.find({"likes":{$gte:50}}).pretty() where likes >= 50
6 不等于 {<key>:{$ne:<value>}} db.col.find({"likes":{$ne:50}}).pretty() where likes != 50
1 and
2 db.col.find({key1:value1, key2:value2}).pretty()
3 or
4 db.col.find({$or:[{key1:value1},{key1:value1}]});
5 
6 
7 删除
8 db.col.remove({})

limit(number) : 获取指定条数的记录
skip(number) : 指定跳过多少条记录

limit+skip可以实现分页的效果
比如有100条数据
每页显示5条
需要显示第三页的数据
limit(5).skip(10);


添加字段索引,使查询速度变快
db.<COLLECTION_NAME>.ensureIndex({KEY:1})

模糊查询
使用正则
db.<COLLECTION_NAME>.find(KEY: {$regex: ‘正则字符串‘})
db.<COLLECTION_NAME>.find(KEY: /正则/)

添加
查询
修改
删除

条件
排序
限制limit
skip
模糊匹配

 1 添加3条商品信息
 2 db.Goods.insert({name:‘iphone‘,‘price‘: 4000});
 3 db.Goods.insert({name:‘imac‘,‘price‘: 10000});
 4 db.Goods.insert({name:‘iphone6‘,‘price‘: 5000});
 5 db.Goods.insert({name:‘iphone6s‘,‘price‘: 6000});
 6 修改
 7 db.Goods.update( {name:‘iphone‘}, {$set:{price:2000}} );
 8 删除
 9 db.Goods.remove({name:‘iphone6s‘});
10 查询
11 db.Goods.find({name: ‘iphone‘}).pretty();
12 db.Goods.find({name: /iphone/}).pretty();
13 db.Goods.find({price: {$gt: 3000}}).pretty();
14 db.Goods.find().limit(1).pretty();
15 db.Goods.find().skip(1).pretty();
16 db.Goods.find().limit(1).skip(1).pretty();
17 db.Goods.find().sort({price: -1}).pretty();

 

以上是关于MongoDB应用详解的主要内容,如果未能解决你的问题,请参考以下文章

MongoDB应用详解

MongoDB学习之权限设置详解

(转) Java中的负数及基本类型的转型详解

详解Android WebView加载html片段

MongoDB入门详解

MongoDB复制集及数据分片详解