数据库database

创建及查看库

1.有则使用这个数据库,没有就创建

use DATABASE_NAME

2. 查看当前选择的数据库,默认是test

db

3.查看数据库,默认有admin、local和"test",如果数据库生成但是没有集合(下面会讲)所以此时只有逻辑数据库产生并没有真正意义上的物理数据,这样看不到查询结果

show dbs

删除库

1.删除选定的数据库,如果还没有选择任何数据库,然后它会删除默认的 ' test' 数据库,执行成功返回{ "dropped" : DATABASE_NAME, "ok" : 1 }

db.dropDatabase()

集合collection(相当于SQL数据库中的表table)

创建及查看集合

1.查看集合

show collections

2.以下注释只为方便阅读,请勿在命令行使用

db.createCollection(name, { //集合的名字
capped: <Boolean>, //是否启用集合限制,如果开启需要制定一个限制条件,默认为不启用,这个参数没有实际意义
autoIndexId: <Boolean>, //是否使用_id作为索引,默认为使用(true或false)
size: <number>, //限制集合使用空间的大小,默认为没有限制,size的优先级比max要高
max <number>} //集合中最大条数限制,默认为没有限制
)

3.特殊情况,若没有newdbc集合,会自动创建集合newdbc并插入数据

db.newdbc.insert({"name" : "yiibai"})

4.常用方法介绍

  • 一般来说,我们创建集合用db.createCollection(name),如:db.createCollection("log"),创建一个名字为log的集合,没有任何的大小,数量限制,使用_id作为默认索引;
  • 限制集合空间的大小:db.createCollection("log",{size:1024})或db.createCollection("log",{capped:true,size:1024}),创建一个名字为log集合,限制它的空间大小为1M,如果超过1M的大小,则会删除最早的记录;
  • 限制集合的最大条数:db.createCollection("log",{max:1024}),创建一个名字为log集合,最大条数为1024条,超过1024再插入数据的话会删除最早的一条记录。这个不能使用capped:true,否则会报错;
  • 即限制最大条数有限制使用空间大小:db.createCollection("log",{size:1024,max:1024})或db.createCollection("log",{capped:true,size:1024,max:1024}),限制集合最大使用空间为1M,最大条数为1024条。

删除集合

1.执行成功返回true,否则将返回 false

db.COLLECTION_NAME.drop()

文档document(相当于SQL数据库中的表column)

增(insert)

1.单条数据插入

db.user.insert({"name":"jack","age":20})

2.批量数据插入采用命令行for循环

删(remove)

1.不带参数会删除全部数据,且不可恢复,切记!

db.user.remove({"name":"joe"})

改(update)

1.整体更新

var model = db.user.findOne({"name":"jack"})
model.age=30
db.user.update({"name":"jack"},model)

2.局部更新

  • $inc修改器——比如我们做一个在线用户状态记录,每次修改会在原有的基础上自增$inc指定的值,如果“文档”中没有此key,则会创建key

    db.user.update({"name":"jack"},{$inc:{"age":30}}) //年龄增加30
  • $set修改器
    db.user.update({"name":"jack"},{$set:{"age":10}}) //年龄变为10

3.upsert操作——如果没有查到,就在数据库里面新增一条,使用起来很简单,将update的第三个参数设为true即可。

4.批量更新——在mongodb中如果匹配多条,默认的情况下只更新第一条,那么如果我们有需求必须批量更新,那么在mongodb中实现也是很简单的,在update的第四个参数中设为true即可

查(find)

1.查找key=value的数据

db.collection.find({ "key" : value })

2.key > value

db.collection.find({ "key" : { $gt: value } })

3.key < value

db.collection.find({ "key" : { $lt: value } })

4.key >= value

db.collection.find({ "key" : { $gte: value } })

5.key <= value

db.collection.find({ "key" : { $lte: value } })

6.value1 < key <value2

db.collection.find({ "key" : { $gt: value1 , $lt: value2 } })

7.key <> value

db.collection.find({ "key" : { $ne: value } })

8.取模运算,条件相当于key % 10 == 1 即key除以10余数为1的

db.collection.find({ "key" : { $mod : [ 10 , 1 ] } })

9.不属于,条件相当于key的值不属于[ 1, 2, 3 ]中任何一个

db.collection.find({ "key" : { $nin: [ 1, 2, 3 ] } })

10.属于,条件相当于key等于[ 1, 2, 3 ]中任何一个

db.collection.find({ "key" : { $in: [ 1, 2, 3 ] } })

11.$size 数量、尺寸,条件相当于key的值的数量是1(key必须是数组,一个值的情况不能算是数量为1的数组)

db.collection.find({ "key" : { $size: 1 } })

12.$exists 字段存在,true返回存在字段key的数据,false返回不存在字度key的数据

db.collection.find({ "key" : { $exists : true|false } })

13.正则,类似like;“i”忽略大小写,“m”支持多行.如joe会匹配出来

db.collection.find({ "name":/^j/,"name":/e$/ })

14.$or或 (注意:MongoDB 1.5.3后版本可用),符合条件a=1的或者符合条件b=2的数据都会查询出来

db.collection.find({ $or : [{a : 1}, {b : 2} ] })

15.符合条件key=value ,同时符合其他两个条件中任意一个的数据

db.collection.find({ "key": value , $or : [{ a : 1 } , { b : 2 }] })

16.内嵌对象中的值匹配,注意:"key.subkey"必须加引号

db.collection.find({ "key.subkey" :value })

17.这是一个与其他查询条件组合使用的操作符,不会单独使用。上述查询条件得到的结果集加上$not之后就能获得相反的集合。

db.collection.find({ "key": { $not : /^val.val$/i } })

18.$where中的value,就是我们非常熟悉,非常热爱的js

db.collection.find({ $where:function(){return this.name=="joe"} })

MongoDB常用增删改查语句的更多相关文章

  1. Java实现mongodb原生增删改查语句

    Java实现mongodb原生增删改查语句 2018-03-16 自动化测试时,需校验数据库数据,为了快速自动化,在代码中用原生增删改查语句操作mongodb 结构 代码 0 pom.xml < ...

  2. 数据库基本查询语句(SQL常用增删改查语句 简单复习 mark)

    SQL常用增删改查语句 1增 1.1[插入单行]insert [into] <表名> (列名) values (列值)例:insert into Strdents (姓名,性别,出生日期) ...

  3. SQL常用增删改查语句

    1增 1.1[插入单行]insert [into] <表名> (列名) values (列值)例:insert into Strdents (姓名,性别,出生日期) values ('开心 ...

  4. SQL常用增删改查语句--来源于网络

    1.1[插入单行]insert [into] <表名> (列名) values (列值)例:insert into Strdents (姓名,性别,出生日期) values ('开心朋朋' ...

  5. Mongodb常用增删改查语法

    1,新增 新增有两种方式 var Tank = mongoose.model('Tank', yourSchema); var small = new Tank({ size: 'small' }); ...

  6. MySQL常用增删改查等操作语句

    修改数据库的字符集    mysql>use mydb    mysql>alter database mydb character set utf8;创建数据库指定数据库的字符集    ...

  7. python 全栈开发,Day124(MongoDB初识,增删改查操作,数据类型,$关键字以及$修改器,"$"的奇妙用法,Array Object 的特殊操作,选取跳过排序,客户端操作)

    一.MongoDB初识 什么是MongoDB MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介 ...

  8. 2,MongoDB之增删改查及pymongo的使用

    本章我们来学习一下关于 MongoDB的增删改查 一.MongoDB操作 之 原生ORM,根本不存在SQL语句 创建数据库:这里和一般的关系型数据库一样,都要先建立一个自己的数据库空间 是的,Mong ...

  9. MongoDB之增删改查(一)

    本文主要介绍MongoDB数据库增删改查操作. 增 mongoDB和其它关系型数据库一样,通过insert来添加数据到集合中去. db.collectionName.insert(内容) 显示数据库中 ...

随机推荐

  1. 使用python处理selenium中的窗口切换问题

    # 获取当前页面的句柄 ch = self.driver.current_window_handle # 获取所有句柄 ah = self.driver.window_handles # 切换句柄 s ...

  2. 使用 Emit 生成 IL 代码

    .NET Core/.NET Framework 的 System.Reflection.Emit 命名空间为我们提供了动态生成 IL 代码的能力.利用这项能力,我们能够在运行时生成一段代码/一个方法 ...

  3. 阿里云ECS 环境是CentOS 7.3安装mongodb3

    CentOS安装mongodb https://www.cnblogs.com/zddzz/p/10069912.html CentOS安装mongodb 我的是阿里云ECS 环境是CentOS 7. ...

  4. springboot: 集成freemark模板引擎

    1.freemark简介(摘自:http://blog.csdn.net/liaomin416100569/article/details/78349072) 在互联网软件内容网站中 一般首页的访问量 ...

  5. Git 的分支和标签规则

    Git 的分支和标签规则 分支使用 x.x 命名,不加 V. 标签使用 v1.x.x-xxx 方式命名.(v 为小写) 分支和标签名不可重复.

  6. (转)完美解决 Android WebView 文本框获取焦点后自动放大有关问题

    完美解决 Android WebView 文本框获取焦点后自动放大问题 前几天在写一个项目时,要求在项目中嵌入一个WebView 本来很快就完成了,测试也没有问题.但发给新加坡时,他们测试都会出现文本 ...

  7. Linux make menuconfig报错 Your display is too small to run Menuconfig!

    在没有全屏的状态下执行 make menuconfig,如果报下面的错误,表示终端的窗口太小,需要放大窗口或者全屏操作. ## using defaults found in /dev/null#Yo ...

  8. mysql binlog_format row and Statement 比较

    两种模式的对比: Statement 优点 历史悠久,技术成熟: 产生的 binlog 文件较小: binlog 中包含了所有数据库修改信息,可以据此来审核数据库的安全等情况: binlog 可以用于 ...

  9. Google Cloud IAM中添加自定义域名

    Google Cloud支持在IAM中加入自定义域名.具体方法如下: 1. 登录Google Cloud Console,点击IAM和管理,进入身份和组织 2. 点击注册 3. 会重定向到Gmail到 ...

  10. erlang的格式化字符串

    往pgsql里面写数据的时候,不能双引号,开始纠结的不行,用拼字符串的形式,后来发现可以格式化字符串,泪奔 data_format.erl -module(data_format). -export( ...