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})