mongodb

——————————————————————————-

 

启动:

 

mongod -f confmongod.conf

 

mongod.conf内容:

 

 

port = 12345

dbpath = data

logpath = log/mongod.log

 

 

帮助:

 

mongo –help

 

连接:

 

mongo 127.0.0.1:12345/test

 

关闭mongodb:

 

use admin

db.shutdownServer()

 

查看数据库:

 

show dbs

 

删除数据库:

 

use mydb

db.dropDatabase()

 

创建集合

数据库无需预先建立,创建集合后会自动建立

 

use imooc

 

插入数据

 

db.imooc_collection.insert({x:1})

 

此时immoc数据库已经建立,imooc_collection集合也建立了

 

show dbs

 

show collections

 

查询:

 

– 查询全部:

db.imooc_collection.find()

 

_id须全局唯一

– 支持js语法插入

for(i=3;i<100;i++) db.immoc_collection.insert({x:i})

– 查询集合item总数

db.imooc_collection.find().count()

– 游标查询

跳过前三条数据,限制返回两条,使用x字段升序排序

 

db.imooc_collection.find().skip(3).limit(2).sort({x:1})

 

更新:

将x=1的数据更新为999

db.imooc_collection.update({x:1},{x:999})

 

部分更新:

如插入这样一条纪录:db.imooc_collection.insert({x:100,y:100,z:100})

如果只想将x更新而保持y与z不变,可以这样写

db.imooc_collection.update({z:100},{$set{x:1024}})

查询后返回的结果:

> db.imooc_collection.find({x:1024})

{ “_id” : ObjectId(“550710fc1faad384b6e908b2”), “x” : 1024, “y” : 100, “z” : 100

 

更新的数据不存在时自动insert (如10086的数据不存在),第三个参数为true

db.imooc_collection.update({x:10086},{x:10087},true)

 

一次更新多条数据, 默认不执行批量更新

如有三条这样的纪录

> for(i=0;i<3;i++) db.imooc_collection.insert({c:1})

WriteResult({ “nInserted” : 1 })

> db.imooc_collection.find({c:1})

{ “_id” : ObjectId(“550713e21faad384b6e908b3”), “c” : 1 }

{ “_id” : ObjectId(“550713e21faad384b6e908b4”), “c” : 1 }

{ “_id” : ObjectId(“550713e21faad384b6e908b5”), “c” : 1 }

 

如果使用 `db.imooc_collection.update({c:1},{c:2}) `, 只会更新一条数据,需要写成

`db.imooc_collection.update({c:1},{$set:{c:2}}, false,true)` ,

 

删除纪录,默认可批量删除

db.imooc_collection.remov({c:2})

 

删除一个collection

db.imooc_collection.drop()

 

索引

—————————

 

查看当前索引:

 

db.imooc_collection.getIndexes()

 

建立索引:(x=1表示正向,-1表示反向索引)

 

db.imooc_collection.ensureIndex({x:1})

 

- EOF -