启动问题:
遇到了启动不成功,最后一句报错的结尾是terminating,就创建一个当前目录下的mongod文件。
问题1. exception in initandlisten 29 data directory /data/db not found
解决思路:用root权限创建db文件。sudo mkdir -p /data/db
不需要占用一个终端的启动:
sudo service mongod start
查看是否启动成功:
ps ajx|grep mongod
如果启动成功会显示:
启动成功显示
此时如果再启动便会报错:
sudo mongod
原因在于地址被占用,已经有一个终端占用了端口。
配置文件在/etc/mongod.conf
查看:vi /etc/mongod.conf
发现默认端口是27017
*启动服务器端命令是mongod,启动客户端命令是mongo
*MySQL的客户端和服务端都是一个命令,Mongo要分开
开启Mongo,显示的界面:
默认数据库是test
解压一个命令tar -zxvf 文件名开头+Tab
Mongo中创建数据库只要use就行了,不需要create,这时候在物理上还是不存在的,只在逻辑上存在。
集合创建
- 语法
db.createCollection(name, options)
- name是要创建的集合的名称
- options是一个文档,用于指定集合的配置
- 选项参数是可选的,所以只需要到指定的集合名称。以下是可以使用的选项列表:
- 例1:不限制集合大小
db.createCollection("stu")
- 例2:限制集合大小,后面学会插入语句后可以查看效果
- 参数capped:默认值为false表示不设置上限,值为true表示设置上限
- 参数size:当capped值为true时,需要指定此参数,表示上限大小,当文档达到上限时,会将之前的数据覆盖,单位为字节
db.createCollection("sub", { capped : true, size : 10 } )
查看当前数据库的集合
- 语法
show collections
删除
- 语法
db.集合名称.drop()
数据类型
- 下表为MongoDB中常用的几种数据类型:
- Object ID:文档ID(作用是用来做唯一标识的,不需要我们来维护,每个文档中都有,自己来维护也可以,但不能保证不重复)
- String:字符串,最常用,必须是有效的UTF-8
- Boolean:存储一个布尔值,true或false
- Integer:整数可以是32位或64位,这取决于服务器
- Double:存储浮点值
- Arrays:数组或列表,多个值存储到一个键
- Object:用于嵌入式的文档,即一个值为一个文档(我们在Nosql中是无法存储关系的,但可以嵌入一个文档用以保存关系)
- Null:存储Null值
- Timestamp:时间戳
- Date:存储当前日期或时间的UNIX时间格式
object id
- 每个文档都有一个属性,为_id,保证每个文档的唯一性
- 可以自己去设置_id插入文档
- 如果没有提供,那么MongoDB为每个文档提供了一个独特的_id,类型为objectID
- objectID是一个12字节的十六进制数
- 前4个字节为当前时间戳
- 接下来3个字节的机器ID
- 接下来的2个字节中MongoDB的服务进程id
- 最后3个字节是简单的增量值
网友评论