接着学习一下mongodb的基本的CRUD
先列出基本知识点,再给出相关的例子
增:语法: db.collectionName.insert(document);
1: 增加单篇文档,不指定_id时会自动生成一个_id
db.collectionName.insert({title:’nice day’});
2: 增加单个文档,并指定_id
db.collectionName.insert({_id:8,age:78,name:’lisi’});
3:增加多个文档
db.collectionName.insert([
{time:'friday',study:'mongodb'},
{_id:9,gender:'male',name:'QQ'}
]);
1.
2.
3.
删:语法: db.collection.remove(查询表达式, 选项);选项是指 {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行.
删除全部(清空表)
删除单条数据
删除全部匹配
改:语法: db.collection.update(查询表达式,新值,选项);
db.news.update({name:'QQ'},{name:'MSN'});
结果: 文档中的其他列也不见了,改后只有_id和name列了.
即--新文档直接替换了旧文档,而不是修改
修改时的赋值表达式
$set 修改某列的值
$unset 删除某个列
$rename 重命名某个列
$inc 增长某个列
$setOnInsert 当upsert为true时,并且发生了insert操作时,可以补充的字段
Option的作用:
{upsert:true/false,multi:true/false}
Upsert---是指没有匹配的行,则直接插入该行.(和mysql中的replace一样)
multi:指是否作用于多行,默认为false
这是用新文档代替旧文档
这是更新操作
这是一个综合操作
作用于多行
如果发生了新增操作,在插入要修改列的基础上,还会插入setOnInsert的列
查: find, findOne:语法: db.collection.find(查询表达式,查询的列);
查询所有列
查询指定列,默认会查出_id列
查指定列,不查_id列
查指定条件下的指定列
Normal
0
7.8 磅
0
2
false
false
false
EN-US
ZH-CN
X-NONE
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:普通表格;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman","serif";}