启动问题:
遇到了启动不成功,最后一句报错的结尾是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个字节是简单的增量值
作者:菩灵
链接:https://www.jianshu.com/p/deb22864fbc1