mongo03
- Mongo存储的单位是文档,文档是js对象,
- use test2
- db.createCollection("stu")//隐士创建库显示创建表
- db.stu.insert({sn:001,name:"xiaoming"})
- db.stu.find()
- use test2
- db.stu.insert({sn:001,name:"xiaoming"})//隐士创建库和表
- db.stu.find()
- Id是自动生成的,但是_id可以手动指定
- Db.collectionName.insert({_id:12,age:78,name:’lisi’});
- 增加多个文档
- use test2
- db.stu.insert(
- [
- {_id:12,sn:001,name:"xiaoming1"},
- {_id:13,sn:002,name:"xiaoming2"},
- {_id:14,sn:003,name:"xiaoming3"},
- {sn:004,name:"xiaoming4"},
- {sn:005,name:"xiaoming4"},
- {sn:006,name:"xiaoming4"},
- {sn:007,name:"xiaoming4"},
- {sn:0022,name:"xiaoming4"},
- ])
- db.stu.find():
- { "_id" : 12, "sn" : 1, "name" : "xiaoming1" }
- { "_id" : 13, "sn" : 2, "name" : "xiaoming2" }
- { "_id" : 14, "sn" : 3, "name" : "xiaoming3" }
- { "_id" : ObjectId("5a449e1483c2d5efb2d581e4"), "sn" : 4, "name" : "xiaoming4" }
- 删:remove
- 语法: db.collection.remove(查询表达式, 选项);
- use test2
- db.stu.remove(
- {"sn":2}
- )
- db.stu.find()
- 选项是指 {justOne:true/false},是否只删一行, 默认为false
- 注意
- 1: 查询表达式依然是个json对象
- 2: 查询表达式匹配的行,将被删掉.
- 3: 如果不写查询表达式,collections中的所有文档将被删掉.
- 例1: db.stu.remove({sn:’001’});
- 删除stu表中 sn属性值为’001’的文档
- 例2: db.stu.remove({gender:’m’,true});
- 删除stu表中gender属性为m的文档,只删除1行.
- 改 update操作
- 改谁? --- 查询表达式
- 改成什么样? -- 新值 或 赋值表达式
- 操作选项 ----- 可选参数
- 语法: db.collection.update(查询表达式,新值,选项);
- 例:
- db.news.update({name:'QQ'},{name:'MSN'});
- 是指选中news表中,name值为QQ的文档,并把其文档值改为{name:’MSN’},
- 结果: 文档中的其他列也不见了,改后只有_id和name列了.
- 即--新文档直接替换了旧文档,而不是修改
- 如果是想修改文档的某列,可以用$set关键字
- db.collectionName.update(query,{$set:{name:’QQ’}})
- 修改时的赋值表达式
- $set 修改某列的值
- $unset 删除某个列
- $rename 重命名某个列
- $inc 增长某个列
- use test2
- db.wk.insert( //全部是json格式
- {
- name:'悟空',
- jinggu:true,
- sex:'m',
- age:500
- }
- )
- db.wk.find():
- {
- "_id" : ObjectId("5a44a74d83c2d5efb2d5820b"),
- "name" : "悟空",
- "jinggu" : true,
- "sex" : "m",
- "age" : 500.0
- }
- db.wk.update(
- {name:"悟空"},
- {
- $set:{name:"都战胜"},
- $unset:{jinggu:1},
- $rename:{sex:”gender”},
- $inc:{age:19}
- },
- {upsert:true}, //插入‘都战胜’
- {multi:true},
- )
- db.wk.find()
- {
- "_id" : ObjectId("5a44a74d83c2d5efb2d5820b"),
- "name" : "都战胜",
- "age" : 519.0,
- "gender" : "m"
- }
- $setOnInsert 当upsert为true时,并且发生了insert操作时,可以补充的字段.
- Option的作用:
- {upsert:true/false,multi:true/false}
- Upsert---是指没有匹配的行,则直接插入该行.(和mysql中的replace一样)
- 例:db.stu.update({name:'wuyong'},{$set:{name:'junshiwuyong'}},{upsert:true});
- 如果有name=’wuyong’的文档,将被修改
- 如果没有,将添加此新文档
- 例:
- db.news.update({_id:99},{x:123,y:234},{upsert:true});
- 没有_id=99的文档被修改,因此直接插入该文档
- multi: 是指修改多行(即使查询表达式命中多行,默认也只改1行,如果想改多行,可以用此选项)
- 例:
- db.news.update({age:21},{$set:{age:22}},{multi:true});
- 则把news中所有age=21的文档,都修改
- 查: find, findOne
- 语法: db.collection.find(查询表达式,查询的列);
- Db.collections.find(表达式,{列1:1,列2:1});
- 例1:db.stu.find()
- 查询所有文档 所有内容
- 例2: db.stu.find({},{gendre:1})
- 查询所有文档,的gender属性 (_id属性默认总是查出来)
- > db.wk.find({},{age:1})
- { "_id" : ObjectId("5a44a74d83c2d5efb2d5820b"), "age" : 576 }
- { "_id" : ObjectId("5a44ae6846de25cd7e79c5f4"), "age" : 19 }
- { "_id" : ObjectId("5a44ae7646de25cd7e79c5f9"), "age" : 19 }
- { "_id" : ObjectId("5a44af5a46de25cd7e79c61a"), "age" : 20056 }
- 例3: db.stu.find({},{gender:1, _id:0})
- 查询所有文档的gender属性,且不查询_id属性
- 例3: db.stu.find({gender:’male’},{name:1,_id:0});
- 查询所有gender属性值为male的文档中的name属性
mongo03的更多相关文章
- Mongo--03 mongo副本集、备份与恢复
目录 一.mongo副本集配置 二.查看副本集状态 三.副本集权重调整 四.创建节点 五.仲裁节点 六.mongo备份与恢复 七.准备测试数据 一.mongo副本集配置 1.创建节点目录和数据目录 # ...
- mongodb集群配置副本集
测试环境 操作系统:CentOS 7.2 最小化安装 主服务器IP地址:192.168.197.21 mongo01 从服务器IP地址:192.168.197.22 mongo02 从服务器IP地址: ...
- mongodb集群配置分片集群
测试环境 操作系统:CentOS 7.2 最小化安装 主服务器IP地址:192.168.197.21 mongo01 从服务器IP地址:192.168.197.22 mongo02 从服务器IP地址: ...
- 快速掌握mongoDB(五)——读写分离的副本集实现和Sharing介绍
1 mongoDB副本集 1 副本集简介 前边我们介绍都是单机MongoDB的使用,在实际开发中很少会用单机MongoDB,因为使用单机会有数据丢失的风险,同时单台服务器无法做到高可用性(即当服务器宕 ...
- 009.MongoDB分片群集部署
一 前期准备 1.1 组件说明 MongoDB分片群集包含以下组件: shard:每个分片是分片数据的子集.从MongoDB 3.6开始,必须将分片部署为副本集. mongos:mongos充当查询路 ...
随机推荐
- 【dfs+理解题意+构造】【待重做】codeforces E. Ice cream coloring
http://codeforces.com/contest/805/problem/E [题意] 染色数是很好确定,最少染色数是max(si)(最小为1,即使所有的si都为0,这样是单节点树形成的森林 ...
- MTK android 重启测试脚本
@echo off set reboot_time=0 :start call adb -s 0123456789ABCDEF reboot set DATESTAMP=%DATE% set TIME ...
- 【HDOJ6324】Grab The Tree(博弈)
题意: 思路: #include <stdio.h> #include <vector> #include <algorithm> #include <str ...
- excludepathpatterns 无效
踩坑了,调了好久才调出来. 原因: 访问的API /XXX 已经转换为 /error 了. 把“/error” 也加入 excludepathpatterns 里面即可.
- ZOJ 3471 【状态压缩DP】
题意: 有n种化学物质,他们彼此反应会有一种消失并释放出能量. 给出矩阵,第i行j列代表i和j反应j消失释放的能量. 求最大释放多少能量. 思路: 状态压缩DP,我是这么想的. 利用二进制0代表该物质 ...
- 七天从零基础学习android(1)--配置环境
在写这篇文的时候android开发经验还是0,是一个萌新,这是一篇记录一个萌新从零android编程基础到能编写一个记账本的开发过程(至少我是这样美好的希望着的) 首先因为是没有开发基础的,直接上百度 ...
- java多线程编程01---------基本概念
一. java多线程编程基本概念--------基本概念 java多线程可以说是java基础中相对较难的部分,尤其是对于小白,次一系列文章的将会对多线程编程及其原理进行介绍,希望对正在多线程中碰壁的小 ...
- 从Java代码到字节码
http://www.importnew.com/13107.html http://blog.csdn.net/dc_726/article/details/7944154/ http://www. ...
- C# DataGridView,右键单击RowHeader时显示右键菜单怎么做?
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e) { ...
- django 简易博客开发 2 模板和数据查询
首先还是贴一下项目地址 https://github.com/goodspeedcheng/sblog 因为代码全在上面 上一篇博客我们介绍了 django的安装配置,新建project,新建a ...