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充当查询路 ...
随机推荐
- BZOJ2726【SDOI2012】任务安排(斜率优化Dp+二分查找)
由题目条件显然可以得到状态 f[i][j] 表示以 i 为结尾且 i 后作为断点,共做了 j 次分组的最小代价. 因此转移变得很显然:f[i][j]=min{f[k][j-1]+(s×j+sumT[i ...
- [第一波模拟\day2\T1] {病毒分裂}(split.cpp)
[题目描述] A 学校的实验室新研制出了一种十分厉害的病毒.由于这种病毒太难以人工制造了,所以专家们在一开始只做出了一个这样的病毒.这个病毒被植入了特殊的微型芯片,使其可以具有一些可编程的特殊性能.最 ...
- angularjs ng-repeat下验证问题
angularjs验证要求name唯一,repeat情况,name 等通过${index}等绑定,也无法获取值 通过ng-from的方法,这样验证name重复也可以了. <ng-form nam ...
- ubunt设置终端快捷键设置 及 常用快捷键
Ctrl+A:将光标移动到命令行的开始处. Ctrl+E:将光标移动到命行令的结尾处. Ctrl+U:删除行首到光标出的字符. Ctrl+Z:把当前进程送到后台处理. & bg 部分快 ...
- 零、常用的Mysql数据库操作语句大全
零.用户管理: 1.新建用户: >CREATE USER name IDENTIFIED BY 'ssapdrow'; 2.更改密码: >SET PASSWORD FOR name=PAS ...
- Leetcode 233.数字1的个数
数字1的个数 给定一个整数 n,计算所有小于等于 n 的非负整数中数字 1 出现的个数. 示例: 输入: 13 输出: 6 解释: 数字 1 出现在以下数字中: 1, 10, 11, 12, 13 . ...
- 如何在非localhost情况下访问Istio中的服务UI
在使用Istio时经常会遇到需要用localhost访问服务UI才能看到相关的一些数据 但对于远程连接的时候使用localhost并不方便,所以需要修改一下它的部署文件,将原先的cluster IP改 ...
- python+RobotFramework
今天有人问我,她想在在robot里面用到数据库的一个值的随机数,但是不知道怎么实现,我用python写了一段代码链接数据库给表中所需的字段的值取随机数,代码如下: import random,pymy ...
- vs2010 相对路径
相对路径是针对后缀为vcxproj文件而言的. 在VS的工程中常常要设置头文件的包含路径,当然你可以使用绝对路径,但是如果你这样设置了你只能在你自己的机器上运行该工程:如果其他人拷贝你的工程到其他机器 ...
- windows7 下安装使用memcached
Memcached 安装使用 本地环境:Windows7 64位web环境:wamp集成环境,php版本:PHP Version 7.1.17 学习参考网站: RUNOOB.COM官网 http:/ ...