33edf 发表于 2014-4-3 09:39:23

mongoDB的shell的基本操作

打开shell首先启动服务端mongod --dbpath d:\app\mongodata然后打开shell:mongo localhost:27017http://img.blog.iyunv.com/20140331093731421?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvTWFnbmV0bzc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center默认是以test用户操作,我们可以通过mongo localhost:27017/admin 增大权限1.创建一个数据库use 但是若什么也不做就退出的话这个空数据库会被删除2.查看所有数据库show dbs3.给指定数据库添加集合并且添加记录db..insert({...})
1.插入文档   db..insert({})2.批量插入文档         shell 这样执行是错误的 db..insert([{},{},{},……..])      shell 不支持批量插入      想完成批量插入可以用mongo的应用驱动或是shell的for循环3.Save操作         save操作和insert操作区别在于当遇到_id相同的情况下         save完成保存操作         insert则会报错
4.查看数据库中所有文档show collections5.查询制定文档的数据    查询所有:db..find()    查询第一条数据:db..findOne()6.更新文档数据db..update({查询条件},{更新内容})例子:var p=db.persons.findOne();db.persons.update(p,{name:"zhang"});
1.强硬的文档替换式更新操作   db..update({查询器},{修改器})      强硬的更新会用新的文档代替老的文档2.主键冲突的时候会报错并且停止更新操作      因为是强硬替换当替换的文档和已有文档ID冲突的时候 ,则系统会报错3.insertOrUpdate操作      目的:查询器查出来数据就执行更新操作,查不出来就替换操作   做法:db..update({查询器},{修改器},true)4.批量更新操作         默认情况当查询器查询出多条数据的时候默认就修改第一条数据      如何实现批量修改      db..update({查询器},{修改器},false, true)
7.删除文档中的数据db..remove({...})例子:db.persons.remove({name:"zhang"})
1.删除列表中所有数据    db..remove()      集合的本身和索引不会别删除2.根据条件删除       db..remove({})    删除集合text中name等于uspcat的纪录      db.text.remove({name:”uspcat”})3.小技巧      如果你想清楚一个数据量十分庞大的集合       直接删除该集合并且重新建立索引的办法       比直接用remove的效率和高很多 8.使用修改器来完成局部更新操作http://img.blog.iyunv.com/20140331101722484?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvTWFnbmV0bzc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center
http://img.blog.iyunv.com/20140331101820953?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvTWFnbmV0bzc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center
. runCommand函数和findAndModify函数   runCommand可以执行mongoDB中的特殊函数   findAndModify就是特殊函数之一他的用于是返回update或remove后的文档    runCommand({“findAndModify”:”processes”,      query:{查询器},sort{排序},   new:trueupdate:{更新器},remove:true      }).value      ps = db.runCommand({            "findAndModify":"persons",            "query":{"name":"text"},       "update":{"$set":{"email":"1221"}},      "new":true}).valueps)9.$addToSet与$each结合完成批量数组更新    db.text.update({_id:1000},{$addToSet:{books:{$each:[“JS”,”DB”]}}})         $each会循环后面的数组把每一个数值进行$addToSet操作10.存在分配与查询效率   当document被创建的时候DB为其分配内存和预留内存,当修改操作         不超过预留内层的时候则速度非常快,超过了就要分配新的内存      则会消耗时间11. 删除库中的集合db..drop()      删除数据库db.dropDatabase()12.shell里面的help全局的help,数据库相关的db.help(),集合相关的db..help()
注:shell客户端内置了js引擎!
页: [1]
查看完整版本: mongoDB的shell的基本操作