基本的增删改查

tips:mongo得插入数据格式都是以json得形式进行插入的,数据格式以json为主
mongodb的底层数据的读写功能使用C++实现。
对外的API调用使用JS来实现的

1.插入命令

use test1 //使用test1数据库

增
//insert插入,如果没有指定的id值则会被系统随机生成一个id,key和value是相应的键和值
//insert直接插入,不遍历数据库,不更新重复数值。

db.collectionName.insert({“_id”:”1001”,”key1”:”value1”,”key2”:”value2”})
insert into collectionName(_id,key1,key2) values(1001,"value1","value2")

//save插入
//save遍历数据库插入,更新重复数值

db.collectionName.save({“_id”:”1001”,”key1”:”value1”,”key2”:”value2”})

2.删除命令

//删除集合的所有文件
删
db.collectionNmae.remove({})
delete  from collectionName;
drop from collectionName;

//指定条件删除
db.collectionName.remove({"key1","value1","key2","value2"})
delete  from collectionName where key1=value1 AND key2=value2;

//$unset删除键,删除key1=value1下的kye2键  tips:key2下的1,-1,0都是对key2进行删除
db.collectionName.update({"key1" : "value1"},{"$unset":{"key2":1}})

3.更改命令

改 

//替换掉id相同的数据内容

db.collectionName.save({“_id”:”1001”,”key1”:”value1”,”key2”:”value2”})
update collectionName set key1="value1", key2="value2" where "id="1001"

//指定条件更改
$set 新增字段名字或者修改指定字段下的参数
db.collectionName.update({_id:"1001"},{$set:{_id:"1002",key1:"value1",key2:"value2"}},{multi:true})
update collectionName set id=1002 ,key1="value1", key2="value2" where "id="1001"
update collectionName set id=1002 ,key1="value1", key2="value2" where "id="1001"

//使用upsert参数更改  [详细解析]()
MongoDB的update方法的中,第三个参数为upsert,默认值为false,当设置为true的时候可以有以下作用,update方法会首先查找与第一
个参数匹配的记录,再用第二个参数更新之,如果找不到与第一个参数匹配的记录,则会插入一条新的记录,插入记录时会先以第一个参数
为基础创建一条记录,然后用第二个参数修改该条新的记录。

db.collectionName.update({key1:”value2”},{$set:{key2:”value2”}},{upsert:true})
update collectionName set key2="value2" where key1=value1

//$push 向文档中的数组形式添加键值,键不存在就创建一个键,键值必须是数组
db.collectionName.update({"key1" :"value1"},{$push:{"key2":"value2"}})

// $inc修改指定条件下的数值,对文档里面的数字类型的值进行增加或者减少
db.collectionName.update({key1:value1},{$inc:{key2:-100}},{multi:true})

//$rename修改字段的名称
db.collectionName.update({key1:"value1"},{$rename:{key1:"value2"}})
update  collectionName set  key1=value2 where key1=value1;

//添加
//指定条件添加数据,数组添加一个数据
$addToSet
db.collectionName({key1:"value1",{$addTset:{"key2","value2"}}})

//$each
//用$addToSet插入多条值,用$each,向key1,value2中数组key2添加多个数据
 db.collectionName.update({"key1":"value1"},{$addToSet:{key2:{$each:[valu2,value3,value4]}}})

#pushAll
db.collectionName.update({key1:"value1"},{$pushAll:{"key2":["value2","value3"]}})

//$pop从数组的头或者尾删除数组中的元素
//1,0,-1。分别代表冲key2数组类型键值的头,尾,尾删除
db.collectionName.update({"key1" :"value1"},{$pop:{"key2":-1}})

//$pull 删除键值中的指定数值 
//删除key1,value1中键为key2数组中的指定数据 value2
db.collectionName.update({"key1" :"value1"},{$pull:{"key2":"value2"}})

//$slice
//截取字符数组 正数是代表从前面进行截取,负数是代表从后面进行截取
//下面结果是再each插入以后从后面进行截取
db.collectionName.update({"key1":"value2" },{$push: {"key2": {$each: [value2, value3,value4 ], $slice: -5}}})

4.查询命令

//查询
//查询全部
db.collectionName.find()
select * from collectionName

//指定条件查询
db.collectionName.find({"key1","value1","key2","value2"})
select * from collectionName where key1=value1 AND key2=value2