自己电脑是Mac,装了VM虚拟机,所以mongodb装在虚拟机的Ubuntu里面
安装
- 安装mongodb
- 下载mongodb,连接:https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1404-3.4.2.tgz,mongodb的Ubuntu 14.04版本
- 解压 tar -zxvf mongodb-linux-x86_64-ubuntu1404-v3.4-latest.tgz
- 压缩后的文件拷贝到目录 mv mongodb-linux-x86_64-3.0.6/ /usr/local/mongodb
- mongodb的bin目录加入到环境变量 export PATH=/usr/local/mongodb/bin:$PATH
- 创建数据库的目录
- mkdir -p /data/db
- chmod 给数据库目录权限
- 启动mongodb服务
- 如果你的数据库目录不是/data/db 需要用--dbpath指定数据库目录
- /usr/local/mongodb/bin/mongod 启动mongodb服务,但是终端窗口关闭以后服务就会停止
- 后台启动服务,创建文件 /data/mongodb.conf
dbpath=/data/db # 数据库目录
logpath=/data/mongodb.log # 日志文件
logappend=true # 追加日志
fork=true # 后台启动服务
port=27017 # 端口
- 启动服务 /usr/local/mongodb/bin/mongod -f /data/mongodb.conf
about to fork child process, waiting until server is ready for connections.
forked process: 58158
child process started successfully, parent exiting
代表服务已经启动
- 关闭后台启动的服务只需要删除/data/db目录下的mongod.lock文件即可
mac xampp 安装mongodb拓展
/Applications/XAMPP/xamppfiles/bin/pecl install mongo
# 会提示Cannot find autoconf. Please check your autoconf installation and the
# $PHP_AUTOCONF environment variable. Then, rerun this script.
# ERROR: `phpize' failed
# 首先安装 autoconf
brew install autoconf
# 再执行
/Applications/XAMPP/xamppfiles/bin/pecl install mongo
可能会出现
# #include <openssl/evp.h> 1 error generated.
# 这时候安装mongodb拓展的时候需要加上openssl的目录,每个人的openssl的目录可能不一样
sudo /Applications/XAMPP/xamppfiles/bin/pecl install mongodb --configure --with-openssl-dir=/usr/local/opt/openssl
#安装完成以后
增加 "extension=mongodb.so" 到 php.ini 文件
<?php
echo phpinfo();
# 查看mongodb拓展是否安装成功
使用
/usr/local/mongodb/bin/mongo # 进入
show dbs # 显示当前所有的数据库
db # 当前正在使用的数据库
RDBMS MongoDB
数据库 数据库
表格 集合
行 文档
列 字段
表联合 嵌入文档
主键 主键 (MongoDB 提供了 key 为 _id )
# mongodb 中的数据类型
String #存储字符串数据
Integer # 整型整值
Boolean # 布尔型
Double # 双精度浮点型
Min/Max keys # 将一个值与BSON(二进制的json)元素的最高值和最低中相对比
Arrays # 用户将数组或者列表或多个值存储为一个键
Timestamp #时间戳
Object # 用户内嵌文档
Null # 创建空置
Symbol # 符号
Date #日期类型
Object ID # 对象ID
Binary Data # 二进制数据
Code # 代码类型 储存JavaScript代码
Regular expression # 正则表达式类型
### 创建数据库
use dbname # 创建数据库
show dbs # 显示当前所有的数据库,刚刚创建的数据库可能看不到,因为里面没有数据
use test
db.dropDatabase() # 删除当前的数据库
db.student.drop() # 删除当前的集合
db.student.insert({"name":"张三", "age":20}) # 插入数据
db.student.update({"age":20}, {$set:{"name":"张三"}})
# 只更新第一条记录:
db.col.update( { "count" : { $gt : 1 } } , { $set : { "test2" : "OK"} } );
全部更新:
db.col.update( { "count" : { $gt : 3 } } , { $set : { "test2" : "OK"} },false,true );
# 只添加第一条:
db.col.update( { "count" : { $gt : 4 } } , { $set : { "test5" : "OK"} },true,false );
# 全部添加加进去:
db.col.update( { "count" : { $gt : 5 } } , { $set : { "test5" : "OK"} },true,true );
# 全部更新:
db.col.update( { "count" : { $gt : 15 } } , { $inc : { "count" : 1} },false,true );
# 只更新第一条记录:
db.col.update( { "count" : { $gt : 10 } } , { $inc : { "count" : 1} },false,false );
PHP操作mongodb
<?php
// 新版mongodb使用这个方法连接mongodb
$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");
var_dump($manager);