MongoDB数据库学习笔记

一、Mongodb数据库之增删改查

show databases
show dbs    //显示数据库;

show tables   
show collections    //查示表或者集合;

use imooc  //使用或创建数据库imooc;

增:
use imooc
db.imooc_collection.insert({x:1})    //往集合名“imooc_collection”插入单条数据“x:1”;

db.imooc_collection.insert({x:2})    //往集合名“imooc_collection”插入单条数据“x:2”;
db.imooc_collection.insert({x:100,y:100,z:100})    //往集合名“imooc_collection”插入多字段单条数据;
for(i=3;i<100;i++)db.imooc_collection.insert({x:i})    //往集合名“imooc_collection”批量插入数据“x:3-99”;

删:
db.imooc_collection.remove({c:2})    //删除集合或表匹配的数据(必须传递参数,否则报错);
db.imooc_collection.drop()    //删除集合或表;

use imooc
db.dropDatabase()    //删除数据库imooc;

改:
db.imooc_collection.update({x:1},{x:999})    //更改集合名“imooc_collection”里“x:1”为“x:999”;
db.imooc_collection.update({z:100},{$set:{y:99}})    //当查找“z:100”时,只更新y字段为“y:99”;
db.imooc_collection.update({y:100},{y:999},true)    //当查找的数据不存在时,插入一条数据;
db.imooc_collection.update({c:1},{$set:{c:2}},false,true)    //批量更新所有匹配的数据;

注:mongodb默认只更新查找到的第一条数据,目的是防止update误操作;

查:
db.imooc_collection.find()    //查询集合名“imooc_collection”里的所有数据内容;
db.imooc_collection.find().count()    //统计集合名“imooc_collection”里的所有数据内容的条数;
db.imooc_collection.find().skip(3)    //查询过滤前3条数据;
db.imooc_collection.find().limit(10)    //查询限制只显示前10条数据;
db.imooc_collection.find().sort({x:1})    //查询使用“x”进行排序;

二、索引

增:
db.collection.ensureIndex()

删:
db.collection.dropIndex("index name")

改:

查:
db.collection.getIndexes()

1._id索引:

use imooc
db.table2.insert({x:1})
db.table2.getIndexes()    //_id索引是插入数据时,默认自动创建的唯一索引(该命令为查询集合内的索引);

2.单键索引:

db.table2.ensureIndex({x:1})    //创建“x:1”的单键索引,查询条件为一个值时即为单键索引;

3.多键索引:

db.table2.insert({x:[1,2,3,4,5]})    //插入一个数组,再创建的索引即为多键索引;

4.复合索引:

db.table2.ensureIndex({x:1,y:2})    //查询条件不只一个时创建的索引即为复合索引;

5.过期索引:

db.table2.insert({time:new Date()})    //插入time:当期时间的一条数据;
db.table2.ensureIndex({time:1},{expireAfterSeconds:30})    //创建键值为time,过期时间为30后的过期索引;

注:数据必须是ISOdate或者ISODate数组,才能自动删除;每60秒执行检测一次;

6.全文索引:

db.table2.ensureIndex({key:"text"})
db.table2.ensureIndex({key_1:"text",ke_2:"text"})
db.table2.ensureIndex({"$**":"text"})    //创建全文索引的三种方法;

db.table2.find({$text:{$search:"aa"}})
db.table2.find({$text:{$search:"aa bb cc"}})
db.table2.find({$text:{$search:"aa bb -cc"}})
db.table2.find({$text:{$search:"\"aa\" \"bb\""}})
db.table2.find({text:{$search:"aa bb"}},{score:{$meta:"textScore"}}).sort({score:{$meta:"textScore"}})    //使用全

文索引的五种方法;

注:全文索引只能指定一个“text”;MongoDB暂不支持中文;

索引重要属性:
1.名字(name);
2.唯一性(unique);
3.稀疏性(sparse);
4.是否定时删除(expireAfterSeconds);

7.地理位置索引:

7.1 2d索引

7.2 2dsphere索引

三、mongoDB安全:

1.开启权限认证;
2.创建用户;
3.创建用户角色;

时间: 2024-10-05 15:51:37

MongoDB数据库学习笔记的相关文章

MongoDB + node-mongoskin学习笔记

特点 无模式 MongoDB 中的每一条文档,都是一个 JSON 对象,因此你无需预定义一个集合的结构,集合中的每个文档也可以有不同的结构. 异步写入 MongoDB 默认所有的写操作都是『不安全』的,即当请求被 MongoDB 收到时,不等写入操作完成,就返回一个『成功』的响应. 这是默认的行为,当然你设置一些选项,让操作等待等待写入完成后再返回响应.不过对于大多数应用,这种『不安全』已经足够安全了. 简单查询 MongoDB 只支持简单的查询,MongoDB 只储存数据,更多的逻辑应该在应用

数据库学习笔记(一)

1.在ORACLE里默认只有三个系统用户,ORACLE是通过用户登入.  SYS用户:超级管理员,权限最高,它的角色是DBA.默认密码是change_on_install.具有创建数据库的权限   SYSTEM用户:系统管理员,权限很高,它的角色是DBA operator,默认密码manager.不具有创建数据库的权限!  普通用户(normal),如系统安装时的scott用户,默认密码是tiger.普通用户的权限是SYS用户或SYSTEM用户给的. 在SQL SERVER里是通过WINDOWS

MySQL数据库学习笔记(十)----JDBC事务处理、封装JDBC工具类

首先需要回顾一下上一篇文章中的内容:MySQL数据库学习笔记(九)----JDBC的PreparedStatement接口重构增删改查 一.JDBC事务处理: 我们已经知道,事务的概念即:所有的操作要么同时成功,要么同时失败.在MySQL中提供了Commit.Rollback命令进行事务的提交与回滚.实际上在JDBC中也存在事务处理,如果要想进行事务处理的话,则必须按照以下的步骤完成. JDBC中事务处理的步骤: 1.要取消掉JDBC的自动提交:void setAutoCommit(boolea

MYSQL数据库学习笔记1

MYSQL数据库学习笔记1 数据库概念 关系数据库 常见数据库软件 SQL SQL的概念 SQL语言分类 数据库操作 创建数据库 查看数据库的定义 删除数据库 修改数据库 创建表 数据类型 约束 修改表 表的增删查改 查询 数据库概念 数据库是一种对大量信息进行管理的一种方法. 数据库系统从结构上看,也是可以分为三层的: 物理层:数据实际如何存储 逻辑层:存储的是什么数据,以及数据间是什么关系 试图层:提供给用户的部分数据 关系数据库 目前关于数据库模型最主流的有两种, 一种叫做关系型数据库,这

sybase数据库学习笔记(一)

sybase的基本框架 sybase数据库由系统数据库.用户数据库.数据库设备和辅助文件组成. 1. 系统数据库 sybase数据库是多个数据库结构的数据库管理系统.分为系统数据库和用户数据库. 系统数据库是在安装的时候自动创建的,包括一下内容: master数据库:全面控制和管理用户数据库及sybase上的一切操作 temp数据库:为临时表和其他临时工作空间提供一个存储区域,是公用的 model数据库:为新建的用户数据库提供一个原型 sybsystemproc数据库:存储系统存储过程 其他系统

MySQL数据库学习笔记(十二)----开源工具DbUtils的使用(数据库的增删改查)

[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4085684.html 联系方式:[email protected] [正文] 这一周状态不太好,连续打了几天的点滴,所以博客中断了一个星期,现在继续. 我们在之前的几篇文章中学习了JDBC对数据库的增删改查.其实在实际开发中,一般都是使用第三方工具类,但是只有将之前的基础学习好了,在使用开源工具的

[转]mnesia数据库学习笔记

mnesia数据库学习笔记一 mnesia数据库学习笔记二 mnesia数据库学习笔记三 mnesia数据库学习笔记四

数据库学习笔记 一

数据库学习笔记 一 前言 作为程序员工作已经很长时间了,但是数据库方面的能力真的是拿不出手,所以准备开始系统的学习一下数据库知识. 我选择的数据库是微软对的SqlServer(MSSQL) 最开始有一次我闲的没事出去面试,被问到之前有没有用过MSSQL,脑中一片空白不知道这是个啥,我竟然说没用过. 安装 学习数据库当然是从安装开始啦,之前各种听说数据的安装和卸载有很大问题,如果遇到问题解决方案几乎都是重装系统,所以机智的我选择了虚拟机. 原来有搞过VMware这个东东确实不错,但是如果自己用免费

数据库学习笔记3 基本的查询流 2 select lastname+&#39;,&#39;+firstname as fullname order by lastname+&#39;,&#39;+firstname len() left() stuff() percent , select top(3) with ties

order by子句对查询结果集进行排序 多列和拼接 多列的方式就很简单了 select firstname,lastname from person.person order by lastname,firstname; 这句话表示根据lastname和firstname两列进行排序,并且是先按照lastname进行排序如果有相同的值就按照firstname进行排序. 拼接很有意思,可以写成这个样子 select lastname+','+firstname as fullname from