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的更多相关文章

  1. Mongo--03 mongo副本集、备份与恢复

    目录 一.mongo副本集配置 二.查看副本集状态 三.副本集权重调整 四.创建节点 五.仲裁节点 六.mongo备份与恢复 七.准备测试数据 一.mongo副本集配置 1.创建节点目录和数据目录 # ...

  2. mongodb集群配置副本集

    测试环境 操作系统:CentOS 7.2 最小化安装 主服务器IP地址:192.168.197.21 mongo01 从服务器IP地址:192.168.197.22 mongo02 从服务器IP地址: ...

  3. mongodb集群配置分片集群

    测试环境 操作系统:CentOS 7.2 最小化安装 主服务器IP地址:192.168.197.21 mongo01 从服务器IP地址:192.168.197.22 mongo02 从服务器IP地址: ...

  4. 快速掌握mongoDB(五)——读写分离的副本集实现和Sharing介绍

    1 mongoDB副本集 1 副本集简介 前边我们介绍都是单机MongoDB的使用,在实际开发中很少会用单机MongoDB,因为使用单机会有数据丢失的风险,同时单台服务器无法做到高可用性(即当服务器宕 ...

  5. 009.MongoDB分片群集部署

    一 前期准备 1.1 组件说明 MongoDB分片群集包含以下组件: shard:每个分片是分片数据的子集.从MongoDB 3.6开始,必须将分片部署为副本集. mongos:mongos充当查询路 ...

随机推荐

  1. 杭电 1596 find the safest road (最小路径变形求最大安全度)

    Description XX星球有很多城市,每个城市之间有一条或多条飞行通道,但是并不是所有的路都是很安全的,每一条路有一个安全系数s,s是在 0 和 1 间的实数(包括0,1),一条从u 到 v 的 ...

  2. 【转】如何在命令行脚本中启动带参数的Windows服务

    我们有一个自己编写的Windows服务,我们希望该服务在启动时可以根据用户输入的参数实现不同的功能. 要实现这样的需求并不是很难,下面这个例子我用来示范如何编写该服务 using System; us ...

  3. angular中的http拦截器Interceptors

    在angularJs中增加了一个对全局的http请求统一做出处理的api--interceptors Interceptors 有两个处理时机,分别是: 其它程序代码执行 HTTP 请求之后,在实际从 ...

  4. luogu4035 [JSOI2008]球形空间产生器

    如果单按照距离相等的话既是高次也没有半径,所以因为给了 \(n+1\) 组点就想到两两做差. 假如一组点是 \(\{a_i\}\) 一组是 \(\{b_i\}\),我们能轻易地得出 \[\sum_{i ...

  5. luogu2869 [USACO07DEC]美食的食草动物Gourmet Grazers

    先满足挑剔的 #include <algorithm> #include <iostream> #include <cstdlib> #include <cs ...

  6. [luoguP3606] [USACO17JAN]Building a Tall Barn建谷仓(贪心 + 线段树)

    传送门 把线段都读进来然后排序,先按右端点为第一关键字从小到大排序,后按左端点为第二关键字从小到大排序. 注意不能先按左端点后按右端点排序,否则会出现大包小的情况,如下: —————— ———  — ...

  7. hud 2073

    #include<stdio.h> #include<math.h> int main() { int i,j,k,n,m,t; double a]; a; for;i++) ...

  8. resin web项目的 编码问题

    问题描述: 服务器迁移,迁移以后Linux系统编码由 UTF-8 变成了GBK !!! 导致在resin 中运行java web项目,调用 http 接口,解析http 接口的返回内容 如:xml 时 ...

  9. Git学习之常见错误 clone被拒绝

    Git学习之常见错误 问题: git clone 时 报错 Permission Denied (权限被拒绝). 解决方法: 需要把本地的公钥上传到服务器. 解决步骤: ①第一步,设置本地的git的用 ...

  10. POJ 2337 【字典序】【欧拉回路】

    题意: 给你一些单词,判断这些单词能否在保证首尾单词相同的情况下连成一排. 如果有多组解,输出字典序最小的一组解. 这题... WA了两天. 错误有以下: 1.没有初始化好起始位置,默认起始位置是a了 ...