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();
时间: 2024-11-02 17:38:05

MongoDB应用详解的相关文章

mongodb 数据库详解

第1章 数据库管理系统 1.1 前言 01.数据的定义:文字.图像.地理位置信息(坐标.经纬度)等 02.数据库管理系统的定义:建立.存取和管理数据,保证数据安全和完整性的软件 03.常见的数据库管理系统: 关系型:MySQL.Oracle.SQL Server.Db2等 非关系型:MongoDB.Redis.HBase等 数据库管理系统使用情况排名https://db-engines.com/en/ranking 1.2 NoSQL简介 NoSQL=Not Only SQL,支持类似SQL的功

mongodb配置文件详解

logpath=/app/mongo/mongolog/mongo.log dbpath=/app/mongo/mongodata verbose = true #vvvv = true #此项会产生大量日志,根据实际情况开启 port = 37017 bind_ip = 10.131.156.170,127.0.0.1 maxConns = 5000 objcheck = true logappend=true nounixsocket = false fork = true #auth =

MongoDb查询详解

查询符合条件的第一个文档(对于mongo来说不能叫记录了)db.COLLECTION_NAME.findOne({},{});     查询符合条件的文档,并按照指定条件排序,跳过前面N1个文档,返回最多数量为N2的文档列表sort skip limit三个函数可选db.COLLECTION_NAME.find({},{}).sort({}).skip(N1).limit(N2); 返回条件的文档数量db.COLLECTION_NAME.count({}); 上面三行代码就是mongo的世界里查

MongoDB副本集配置系列七:MongoDB oplog详解

1:oplog简介 oplog是local库下的一个固定集合,Secondary就是通过查看Primary 的oplog这个集合来进行复制的.每个节点都有oplog,记录这从主节点复制过来的信息,这样每个成员都可以作为同步源给其他节点. 2:副本集数据同步的过程 副本集中数据同步的详细过程:Primary节点写入数据,Secondary通过读取Primary的oplog得到复制信息,开始复制数据并且将复制信息写入到自己的oplog.如果某个操作失败(只有当同步源的数据损坏或者数据与主节点不一致时

MongoDB操作命令详解及备份恢复、管理、监控【详细】

MongDB简介MongDB是一款跨平台,面向文档的数据库,可以实现高性能,高可用性,并且能够轻松扩展,是一个基于分布式文件存储的开源数据库系统.在高负载的情况下,添加更多的节点,可以保证服务器性能.不再有行的概念,其运行方式主要基于两个概念:集合(collection).与文档(document). 它的特点是高性能.易部署.易使用,存储数据非常方便.主要功能特性有: 面向集合存储,易存储对象类型的数据.模式自由.支持查询.支持动态查询.支持完全索引,包含内部对象.支持复制和故障恢复.使用高效

MongoDB系列教程(八):GridFS存储详解

MongoDB系列教程(八):GridFS存储详解 GridFS简介 mongoDB的文档以BSON格式存储,支持二进制的数据类型,当我们把二进制格式的数据直接保存到mongoDB的文档中.但是当文件太大时,例如图片和视频等文件,每个文档的长度是有限的,于是mongoDb会提供了一种处理大文件的规范--GridFS. GridFS实现原理 在GridFS数据库中,默认使用fs.chunks 和fs.files来存储文件,其中fs.files集合存放文件的信息,fs.chunks存放文件的数据,一

使用VS2010编译MongoDB C++驱动详解

最近为了解决IM消息记录的高速度写入.多文档类型支持的需求,决定使用MongoDB来解决. 考虑到MongoDB对VS版本要求较高,与我现有的VS版本不兼容,在leveldb.ssdb.redis.hbase等NoSQL中转了一圈,最后还是选择了MongoDB,应了那句话:没有最好的,只有最合适的. MongoDB由于使用了C++的新特性,官方建议使用VS2013来编译,最低要求VS2010. MongoDB C++驱动编译过程较为复杂,官方也没有提供编译好的驱动包,网上的资料编译版本都比较老了

MongoDB各种查询操作详解

这篇文章主要介绍了MongoDB各种查询操作详解,包括比较查询.关联查询.数组查询等,需要的朋友可以参考下 一.find操作 MongoDB中使用find来进行查询,通过指定find的第一个参数可以实现全部和部分查询. 1.查询全部 空的查询文档{}会匹配集合的全部内容.如果不指定查询文档,默认就是{}. 2.部分查询 3.键的筛选 键的筛选是查询时只返回自己感兴趣的键值,通过指定find的第二个参数来实现.这样可以节省传输的数据量,又能节省客户端解码文档的时间和内存消耗. 查询时,数据库所关心

详解MongoDB安装以及基本操作

简介 MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案.是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的.它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型.Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引. MongoDB特点 面向集合存储