字段重命名
将coll1表中oprater1字段名换成oprater
db.getCollection('coll1').update({},{"$rename":{'oprater1':'oprater'}},false,true)
根据mongodb中内嵌数组数量限制进行查询
-
查询a_col表中name键数组数量为1的数据
db.getCollection('a_col').find({'name': {‘$size':1}})
-
查询a_col表中name键数组数量大于1的数据
db.getCollection(‘col_a').find({'name.1': {‘$exists':1}})
索引(所有命令注意大小写)
创建索引
db.coll.ensureIndex({"firstname": 1})
-
查看已创建的索引
db.coll.getIndexes()
删除索引
db.coll.dropIndex({"firstname": 1})
创建复合索引
数字1表示firstname键的索引按升序存储,-1表示lastname键的索引按照降序方式存储。
db.coll.ensureIndex({"firstname": 1,"lastname":-1})
-
创建唯一索引
db.coll.ensureIndex({"firstname": 1, "lastname": 1}, {"unique": true});
创建成功后重复插入会报错”E11000 duplicate key error index“
-
创建唯一索引并删除重复记录(mongodb版本3.0以上不适用)
db.coll.ensureIndex({"productid":1}, {"unique":true, "dropDups":true})
后台创建索引
后台创建索引,创建时不会阻塞其他操作,效率会比阻塞方式创建低一点
db.coll.ensureIndex({"firstname":1},{"background":true})
性能优化
性能分析函数(explain)
db.coll.find({"name":name}).explain()
显示执行状态
db.coll.find({"name":name}).explain("executionStats")
mongodb使用主从配置提高性能
http://www.cnblogs.com/myblog1314/p/3914810.html
http://www.cnblogs.com/yujon/p/6128761.html