1 数据库操作
当新创建的数据库里没有插入数据时,并不会被查询到相应的信息,只有插入数据的数据库才会显示其相应的信息。
在对某个数据库进行相关操作时,需先使用use命令选择执行该数据库。
#创建数据库myDB(use命令在数据库已存在时就是选择执行,否则就是创建) use myDB #查看数据库 show dbs #选择执行myDB数据库 use myDB #统计数据信息 db.stats() #查看当前数据库下的所有集合 show collections db.getCollectionNames() #删除当前数据库 db.dropDatabase()
2 集合操作
🏅普通集合操作
#创建集合 db.createCollection("myCollection") //显式创建myCollection sb.stu.insert({name: "jack"}) //隐式创建stu #查询集合 show collections #查看集合的详细信息 db.getCollectionInfos() #集合重命名 db.myCollection.renameCollection("myColl") #查看集合统计信息 db.myCollecyion.stats() #删除集合 db.myCollection.drop()
🏅定长集合操作
#定长集合的创建 db.createCollection("myCollection",{capped:true,size:3}) #判断集合是否为定长集合 db.myCollection.isCapped() #普通集合转定长集合 db.runCommand({convertToCapped:"stu1",size:100})
3 文档操作
3.1 插入文档(insert|insertOne|insertMany)
#向stu集合插入一个文档 db.stu.insert({item: "card",qty: 15}) #向stu集合插入多个文档 db.stu.insert( [{item: "card",qty: 15}, {item: "card1",qty: 16}, {item: "card2",qty: 17}] ) #使用变量方式插入多个文档 document=[{item: "card",qty: 15},{item: "card1",qty: 16},{item: "card2",qty: 17}] db.stu.insert(document) #insertOne只能用来一次插入一个文档 #insertMany可以用来一次插入多个文档 #具体用法与insert的一样
3.2插入、删除的循环操作
💥循环插入10条数据
for(var i=1,age=20;i<=10;i++,age++)db.stu.insert({name:"jack"+i,age:age})
💥将一个集合的数据插入到另一个新建集合
db.stu1.find().forEach(function(x)){db.stu2.insert(x);}
💥循环修改集合中的文档数据
for(var i=6;i<=10;i++)db.stu2.update({"name":["jack"+i,"tom"+i]},{$set:{"name":"tom"+i}})
3.2 删除文档(remove|deleteOne|deleteMany)
#删除stu数据库中满足条件的所有文档 db.stu.remove({条件}) #删除stu数据库中满足条件的一条文档 db.stu.remove({条件},justOne:true) #删除stu集合下的所有文档 db.stu.deleteMany({}) #删除stu集合下的所有满足条件的文档 db.stu.deleteMany({条件}) #删除stu集合下的所有满足条件的一条文档 db.stu.deleteOne({条件}) 3.3 更新文档(update|save) db.集合名.update({条件},{$set:{字段名:修改后的值}}) #将stu集合中item为card的文档中qty值修改为35 db.stu.update( {item: "card"}, {$set: {qty: 35}} ) #save命令进行更新 db.stu.save({"_id": 10,item: "card",qty: 35})
save与update命令的区别:
save按_id进行匹配查找,修改的文档若存在就进行修改,若不存在则创建该文档并插入集合
update按条件匹配查找,修改的文档若存在就进行修改,若不存在则会抛异常