- MongDB的简介
MongoDB是用C++语言编写的非关系型数据库。特点是高性能、易部署、易使用,存储数据十分方便。 - MongDB的安装
- MongoDB 的下载地址:http://www.mongodb.org/downloads 在官网下载适合自己操作系统版本
- 将MongoDB 解压到任意目录下,例如:D:\Application Software\mongodb-win32-i386-2.4.3 之后将mongoDB 的bin文件夹的路径加入到系统的path环境变量中即可。如图:
- 在启动MongoDB之前,要手动创建一个存放MongoDB数据文件的目录,如D:\mongo_data
在命令行执行 mongod –dbpath=D:\mongo_data
- 连接到MongoDB 服务器。在cmd 中输入 mongo ip:port(ip:为连接服务器的ip地址,port :为端口号,默认为27017)
- MongoDB 中和关系型数据库比起来比较特殊的数据类型:
类型 | 描述 | 示例 |
---|---|---|
日期 | 从标准纪元开始的毫秒数 | {“date”:new Date()} |
正则表达式 | 文档中可以包含正则表达式,遵循JavaScript的语法 | {“foo”:/foobar/i} |
代码 | 文档中可以包含JavaScript代码 | {“x”:function() {}} |
未定义 | undefined | {“x”:undefined} |
数组 | 值的集合或者列 | 表 {“arr”: [“a”,”b”]} |
内嵌文档 | 文档可以作为文档中某个key的value | {“x”:{“foo”:”bar”}} |
3. MongoDB 中常用的操作:
操作类型 | 常用操作 | 示例 |
---|---|---|
创建数据库使用use命令 | use ssh (use 命令后跟的数据库名,如果存在就进入此数据库,如果不存在就创建) | |
删除当前数据库使用命令 db.dropDatabase() | ||
数据库操作 | 查看所有数据库,使用命令 show dbs | |
查看当前所在数据库,使用命令 db | ||
查看当前数据库中所有的集合,使用命令 show collections 或使用show tables | ||
显示创建可以使用命令 db.createCollection(“集合名称”);隐式创建可以使用命令 db.集合名称.insert({}), | ||
删除集合使用命令:db.集合名称.drop() | ||
向集合添加文档,使用命令 db.集合名称.insert({}) | db.user1.insert({name:”shell”,age:20}) | |
集合操作 | 删除集合中的文档,使用命令 db.集合名称.remove({删除条件}) | 不加删除条件为删除集合中的所有文档,例如,db.c1.remove() 为删除c1集合中的所有文档,db.c1.remove({name:”user1”})为删除c1集合中name为user1的文档 |
查询集合中的文档,可以使用命令 db.集合名称.find({条件}),或者使用 db.集合名称.findOne() 查询第一个文档 | ||
查询集合中的文档 ,统计(count)、排序(sort)、分页(skip、limit) | 1.db.customer.find().count(); 2.db.customer.find({age:{$lt:5}}).count();3.db.customer.find().sort({age:1}); 降序-1 4.db.customer.find().skip(2).limit(3); | |
查询集合中的文档 ,$all主要用来查询数组中的包含关系,查询条件中只要有一个不包含就不返回 | ||
查询集合中的文档 , nin,与 in相反 | ||
查询集合中的文档 $or,相当于关系型数据库中的OR,表示或者的关系 | db.c1.find({$or:[{name:”user2”},{age:3}]}) | |
查询集合中的文档 ,$exists,用于查询集合中存在某个键的文档或不存在某个键的文档 | 如查询customer集合中存在name键的所有文档,可以使用 db.customer.find({name:{exists:1}});注意:0表示不存在 1表示存在 | |
mongodb中的游标 | 创建游标: var x=db.c1.find() 使用游标 :x.next() | |
更新集合使用db.collection.update(criteria,objNew,upsert,multi)同时通常需要和 $set( 用来指定一个键的值,如果这个键不存在,则创建它)一起使用 | db.c1.update({name:”user1”},{$set:{address:”shanghai”}},0,1) | |
更新集合中的文档, $unset 用来删除某个键 | db.c1.update({name:”shell”},{$unset:{address:1}},0,1}) |