显示当前数据库服务器上的数据库show dbs
html
切换到指定数据库的上下文,能够在此上下文中管理testdb数据库以及其中的集合等use testdb
正则表达式
显示数据库中全部的集合(collection)show collections
数据库
查看数据库服务器的状态db.serverStatus()
服务器
查询指定数据库统计信息use fragment
app
db.stats()
dom
建立数据库。
直接经过use dbname来切换到这个数据库上下文下面,系统会自动延迟建立该数据库。函数
use testdb show dbs (此刻可能testdb数据库并无被建立) db (显示当前使用的数据库,结果位testdb) db.storeCollection.save({'version':'3.5', 'segment':'e3ol6'}) (插入一条数据) show dbs (此刻能看到testdb被建立)
删除数据库。
直接使用db.dropDatabase()便可删除数据库。this
建立集合。.net
db.createCollection('replicationColletion', {'capped':true, 'size':10240, 'max':17855200}) show collections
删除集合。code
db.mycoll.drop()
增长纪录。
两种插入方法
db.storeCollection.save({'version':'3.5', 'segment':'e3ol6'})
db.storeCollection.insert({'version':'3.5', 'segment':'e3ol6'})
若新增的数据中存在主键 ,insert() 会提示错误,而save() 则更改原来的内容为新内容。
如:
已存在数据: {_id : 1, " name " : " n1 " },再次进行插入操做时,
insert({_id : 1, " name " : " n2 " }) 会报主键重复的错误提示
save({ _id : 1, " name " : " n2 " }) 会把 n1 修改成 n2 。
相同点:
若新增的数据中没有主键时,会增长一条记录。
已存在数据: { _id : 1, " name " : " n1 " },再次进行插入操做时,insert({ " name " : " n2 " })
插入的数据由于没有主键,因此会增长一条数据save({ " name " : " n2 " })
增长一条数据。
循环插入
for(var i = 1; i < 100; i++) {
db.testCollection.insert({ age : i % 7, name : 'name' + Math.round((10 + 20 * Math.random())), password : '123456' })
}
更新记录。
db.testCollection.update({age: 6}, {$inc: {age: 1}}) //选择age为6的一条记录,使他的age加1. db.testCollection.update({age: 7}, {$set: {password : '456789'}}) //选择age为7的一条记录,设置password为456789 //若是条件不匹配一个记录,但愿能往数据库里新增一个,设置update函数第三个参数为true就能够。这里age为8条件匹配不到数据。 db.testCollection.update({age: 8}, {$set: {password : '888888'}}, true) //若要批量更新,设置update函数第四个参数为true就能够了。 db.testCollection.update({age: 7}, {$set: {password : '456789'}}, true, true)
更新version为3.5的记录的segment值。
查询一条纪录。
db.storeCollection.findOne({'version':'3.5'})
参数为查询条件,可选,系统会随机查询获取到知足条件的一条记录(若是存在查询结果数量大于等于1)。
查询多条记录。
db.storeCollection.find()
使用find()函数,参数指定查询条件,不指定条件则查询所有记录。
条件查询包括4种方法:
// 1. $gt(>)、$gte(>=)、$lt(<)、$lt(<=)、$ne(!=)、没有特殊关键字(=) db.testCollection.find({age: {$$gt:5}}).count() //14。note:去掉gt前面一个$符号,$符号会被解析,wiznote搞的鬼!!! db.testCollection.find({age: {$gte:5}}).count() //28 db.testCollection.find({age: {$lt:5}}).count() //71 db.testCollection.find({age: {$lte:5}}).count() //85 db.testCollection.find({age: {$ne:5}}).count() //85 db.testCollection.find({age: 5}).count() //14 // 2. 没有特殊关键字(&&)、 $or(||)、$in()、$nin() db.testCollection.find({age: {$$gt: 5}, password:'123456'}).count() //年龄大于5且密码为123456, 14。 //年龄为5或者名字为name26,18 db.testCollection.find({$or:[{age: 5}, {name:'name26'}]}).count() db.testCollection.find({age: {$in: [1,5, 6]}}).count() //年龄在一、五、6中,43。 db.testCollection.find({age: {$nin: [1,5, 6]}}).count() //年龄不在一、五、6中,56 // 3. 正则表达式匹配,威力强劲 db.testCollection.find({name: /^name1\d/}).count() //名字以name1开头的,从name10到name19的记录。41 //4. where语句,大招来了 db.testCollection.find({$where:function(){return this.age > 5} }).count()
删除纪录
db.storeCollection.findOne({'version': '3.5'}) (删除version为3.5的纪录) db.storeCollection.findOne({'version': '3.5'}) (返回结果为空)
统计集合记录数
db.storeCollection.count()
查询并统计结果记录数
db.storeCollection.find({'segment':'e30l8'}).count()