参考:http://www.cnblogs.com/huangxincheng/archive/2012/02/18/2356595.html
启动:
mongod.exe --dbpath=D:\ProgramFiles(x64)\mongodb2.4.9\db # (要先建好db文件夹)
查看信息:
mongodb采用27017端口,那么我们就在浏览器里面键入"http://localhost:27017/", 打开后,mongodb告诉我们在27017上Add 1000可以用http模式查看mongodb的管理信息。
基本操作:(采用json的二进制格式bson)
shell中打开客户端mongo 默认连接到test数据库
在集合上进行操作
①insert
db.person.insert({"name":"fk", "age":24})
db.person.insert("name":"kittengp", "age":24)
这里person就是集合
②find
"_id": 这个字段是数据库默认给我们加的GUID,目的就是保证数据的唯一性
db.person.find({"name":"fk"})
db.person.find() # 全部匹配
③update
update第一个参数是查找条件,第二个参数是更新的值
db.person.update({"name":"fk"}, {"name":"fk", "age":25})
④remove
remove中如果不带参数将删除所有数据,呵呵,很危险的操作,在mongodb中是一个不可撤回的操作
db.person.remove({"name":"fk"})
---------------------------------------更多CURD-------------------------------------------
①find=>更多条件查询
(i)"$gt"(>), "$gte"(>=), "$lt"(<), "$lte"(<=), "$ne"(!=), "无特殊关键字"(=)
db.person.find({"age":{$gt:22}}) # 查询age>22的person
(ii)"无特殊关键字", "$or", "$in", "$nin"
db.person.find({$or:[{"address":"zhengzhou"}, {"address":"xinyang"}]})
db.person.find({"address":{$in:["zhengzhou", "xinyang"]}})
(iii)正则匹配
db.person.find({"name":/^f/})
(iv)$where => 使用js
db.person.find({$where:function(){return this.name=="flyking"}})
②update 两种更新方式
(i)整体更新
上面介绍的update属于这种
(ii)局部更新
要使用 = >修改器: $inc 和 $set
db.person.update({"name":"flyking"}, {$inc:{"age":-1}}) # inc => 增量
db.person.update({"name":"flyking"}, {$set:{"age":24}}) # set => 设置为
(iii)***更新,如果没有就插入,只需把update的第三个参数设为true
db.person.update({"name":"zhangsan"}, {$set:{"age":24}}, true)
----------------------------------索引优化-----------------------------------
先插入10w条记录
db.person.remove()
for(var i = 0;i < 100000;i++){
db.person.insert({"name":"fk_"+i, "age":i})
}
性能分析函数 explain
db.person.find({"name":"fk_"+99999}).explain()
# "millis" : 35 => 耗时35ms 很慢的
查看集合有哪些索引 getIndexes
db.person.getIndexes()
(i)普通索引 ensureIndex
db.person.ensureIndex({"name":1}) # 把name字段建立一个索引,1表示按name升序, -1表示降序
db.person.find({"name":"fk_"+88888})
# "millis" : 0 = > 小于1ms 非常快
(ii)唯一索引 ensureIndex的第二个参数设为 {"unique":true},表示键值唯一(类似mysql的id字段唯一)
***建立唯一索引后,重复的键值不能插入了
db.person.ensureIndex({"name":1}, {"unique":true})
(iii)组合索引
例如:如果查询条件是 name=fk_88888, age=36886,这时就需要组合索引
**我们只需把name,age都加上索引,mongodb系统自动使用组合索引来查询
(iv)删除索引dropIndexes
db.person.dropIndexes("name_1")
-----------------------------------------常用管理操作--------------------------------------
查看所有数据库: show dbs
查看当前数据库: db
使用某个数据库: use test
查看所有collections: show collections
查看当前数据库所有方法: db,.help()
本文详细介绍了MongoDB的基本操作,包括插入、查找、更新和删除数据,以及如何通过索引优化提高查询效率。

858

被折叠的 条评论
为什么被折叠?



