MongoDB增删改查

基础语句(

show dbs;

show collections;

db.user.insert({name:"muyong",age:18});

db.user.find();

db.user.insertMany([{K:v,K:v},{K:v,K:v}]);

db.user.find().toArray();

db.user.find().pretty();

...

CURD

脚本方法


)

文档详细:https://docs.mongodb.com/master/mongo/

1. use foobar
2. show dbs
3. show collections
4. db.system.indexes.find()
5. db.persons.find()
6. db.persons.insert({name:"extjs4.0"})
7. db.persons.findOne()
8. db.persons.update({name:"extjs4.0"},{$set:{name:"extjs4.1"}})
强硬的文档替换工作:
db.text.update({name:"yfc"},{age:29})
9. var p=db.persons.findOne();
db.persons.update(p,{name:"uspcat"})
10.db.persons.update({age:1},{$set:{age:2}});
如果有两个age为一的话,我们只能修改一个。
11.db.persons.remove({age:2});
12.db.persons.insert({_id:"001",name:"yun"})//自己主动插入_id.
13.db.persons.insert([{name:"34"},{name:"234"}])
这样子插入的话,结果"0":{"name":"34","1":{"name","234"}}
14. 批量插入,
for(var i=0;i<10;i++){
db.persons.insert({name:i})

}
15. save与insert的区别在于,在相同id的情况下,insert回报错。
16.db.persons.remove()
17.db.persons.remove({_id:1})
18.插入或者更新
db.persons.update({查询器},{修改器},true)
19.实现批量修改
db.persons.update({name:3},{$set:{name:"333"}},false,true)
20.
$set 用来指定一个键值对,如果存在键就进行修改,不存在则进行添加。
$inc 只是使用与数字类型,他可以为指定的键对应的数字类型的数值进行加减操作。
$unset 他的用法很简单,就是删除指定的键。
$push 如果指定的键是数组增追加新的数值,如果不存在指定的键则创建数组类型的键值对。
$pushAll 用法和$push相似,可以批量添加数组。
$addToSet 目标数组存在此项则不操作,不存在此项则加进去。
$pop 从指定数组删除一个值,1删除最后一个数值,-1删除第一个数值。
$pull 删除一个被指定的数值。
$pullAll一次性删除多个指定的数值。
$ db.text.update({"books.type":"JS"},{$set:{"books.$.author":"USPCAT"}}) 
===================================================================
find的用法:
21. db.persons.find({},{name:1,age:1,country:1,_id:0});
22.$lt < $lte <= $gt > $gte >= $ne !=
23. 查询出年龄在25到27岁之间的学生 db.persons.find({age: {$gte:25,$lte:27},{_id:0,age:1})
24.查询出所有不是韩国籍的学生的数学成绩db.persons.find({country:{$ne:” Korea”}},{_id:0,m:1})
============================================================
包含或不包含$in 或$nin
25.查询国籍是中国或美国的学生信息
db.persons.find({country:{$in:[“USA”,“China”]}})
26.查询国籍不是中国或美国的学生信息
db.persons.find({country:{$nin:[“USA”,“China”]}})
==============================================================
or查询$or
27.查询语文成绩大于85或者英语大于90的学生信息
db.persons.find({$or:[{$gte:85}},{e:{$gte:90}}],{_id:0,c:1,e:1})
28.把中国国籍的学生上增加新的键sex
db.person.update({country:”China”},{$set:{sex:”m”}})
29.查询出sex等于null的学生
db.persons.find({sex:{$in:[null]}},{country:1})
==============================================================
30.查询出名字中存在”li”的学生的信息db.persons.find({name:/li/i},{_id:0,name:1})
31.$not可以用到任何地方进行取反操作 
查询出名字中不存在”li”的学生的信息 
db.persons.find({name:{$not:/li/i}},{_id:0,name:1}) 
$not和$nin的区别是$not可以用在任何地方儿$nin是用到集合上的
32.数组查询$all和index应用
2.8查询喜欢看MONGOD和JS的学生
db.persons.find({books:{$all:[“MONGOBD”,”JS”]}},{books:1,_id:0}) 
2.9查询第二本书是JAVA的学习信息 
db.persons.find({“books.1”:”JAVA”})
db.persons.find({name:{$not:/li/i}},{_id:0,name:1})
33. .查询指定长度数组$size它不能与比较查询符一起使用(这是弊端) 
2.8查询出喜欢的书籍数量是4本的学生 
db.persons.find({books:{$size:4}},{_id:0,books:1})
34.查询出喜欢的书籍数量大于3本的学生
1.增加字段size 
db.persons.update({},{$set:{size:4}},false, true)
2.改变书籍的更新方式,每次增加书籍的时候size增加1 
db.persons.update({查询器},{$push:{books:”ORACLE”},$inc:{size:1}}) 
3.利用$gt查询 
db.persons.find({size:{$gt:3}})
35.利用shell查询出Jim喜欢看的书的数量
var persons = db.persons.find({name:"jim"}) while(persons.hasNext()){ 
obj = persons.next(); 
print(obj.books.length)

36. 1.mongodb 是NOSQL数据库但是他在文档查询上还是很强大的 
2.查询符基本是用到花括号里面的更新符基本是在外面 
3.shell是个彻彻底底的JS引擎,但是一些特殊的操作要靠他的 各个驱动包来成(JAVA,NODE.JS)
==================================================================

1.注意在json中name:"3" 与"name":"3"是一样的,但是name:"3"与name:3就不同了。
他不允许后边一个有引号另一个没哟引号。
2.mongo没有事务,本来就不完事务的,事务是原子级的,效率低。
3.couchDB里号称是有事务性的mongodb
因为没用过,所以,你们懂的

 ***************************************************************************
***************************************************************************

MongoDB增删改查_第1张图片

MongoDB增删改查_第2张图片

对update 的set的使用

如果没有使用set是这个结果:

 MongoDB增删改查_第3张图片

如果使用set是这个结果:

MongoDB增删改查_第4张图片

********************************************************
********************************************************
1.db.stats();

2.db.persons.help()

3.db-text这个集合不能通过db.[],只能db.getCollection()

4.

1.插入文档 db.[documentName].insert({})

2.批量插入文档 shell 这样执行是错误的 db.[documentName].insert([{},{},{},……..]) shell 不支持批量插入 想完成批量插入可以用mongo的应用驱动或是shell的for循环

3.Save操作 save操作和insert操作区别在于当遇到_id相同的情况下 save完成保存操作 insert则会报错

 MongoDB增删改查_第5张图片

 正确的批量插入数据的方法:

你可能感兴趣的:(全栈)