MongoDB使用总结

本文档详述了MongoDB的配置安装、配置文件参数、基本概念,以及使用PHP进行CRUD操作的实例,包括查询、更新、删除数据,同时探讨了聚合查询和索引的创建与管理。
摘要由CSDN通过智能技术生成

前言

该文章主要介绍本人对mongodb的配置使用以及在php方面的运用。
参考文档:
MongoDB文档说明
MongoDB第三方类库

(1)MongoDB的配置安装

  1. Windows系统
    windows环境安装教程

  2. Linux系统
    linux环境安装教程

(2)配置文件信息说明

MongoDB配置文件

参数说明:
systemLog.destination:MongoDB 将所有日志输出发送到的目的地。指定 file或syslog。如果指定file,则还必须指定 systemLog.path。

systemLog.logAppend:当或 实例重新启动时true,将新条目附加到现有日志文件的末尾。如果没有此选项,将备份现有日志并创建一个新文件。

systemLog.path:MongoDB日志文件

storage.dbPath:MongoDB数据存储路径

storage.journal.enabled:启用或禁用持久性日志以确保数据文件保持有效和可恢复。此选项仅在指定 storage.dbPath设置时适用。mongod默认启用日记功能。

processManagement.fork:启用在后台运行或进程的守护程序模式。默认情况下或不作为守护程序运行:通常您将运行或作为守护程序,通过使用 或使用处理守护进程的控制进程

net.port:端口号

net.bindIp:绑定的ip地址,默认为本机;可通过设置值为0.0.0.0允许所有ip连接;

以上为MongoDB配置文件的简单配置,更多配置信息详情请查看:
MongoDB配置文件相关参数说明

(3)MongoDB相关概念解析

MongDB术语 说明
database 数据库
collection 数据表
document 数据记录行/文档
field 数据字段/域
index 索引

(4)MongoDB类型

类型 说明
Object ID Documents 自生成的 _id
String 字符串,必须是utf-8
Boolean 布尔值,true 或者false
Integer 整型,Int32 Int64
Double 浮点数 (没有float类型,所有小数都是Double)
Arrays 数组或者列表
Object 对象
Null 空数据类型
Timestamp 时间戳
Decimal128 BSON十进制128类型

(5)MongoDB的CRUD操作实例

1、写入数据
(1)写入单个文档
shell:

db.inventory.insertOne(
   {
    item: "canvas", qty: 100, tags: ["cotton"], size: {
    h: 28, w: 35.5, uom: "cm" } }
)

php:

$insertOneResult = $db->inventory->insertOne([
    'item' => 'canvas',
    'qty' => 100,
    'tags' => ['cotton'],
    'size' => ['h' => 28, 'w' => 35.5, 'uom' => 'cm'],
]);

(2)写入多个文档
shell:

db.inventory.insertMany([
   {
    item: "journal", qty: 25, tags: ["blank", "red"], size: {
    h: 14, w: 21, uom: "cm" } },
   {
    item: "mat", qty: 85, tags: ["gray"], size: {
    h: 27.9, w: 35.5, uom: "cm" } },
   {
    item: "mousepad", qty: 25, tags: ["gel", "blue"], size: {
    h: 19, w: 22.85, uom: "cm" } }
])

php:

$insertManyResult = $db->inventory->insertMany([
    [
        'item' => 'journal',
        'qty' => 25,
        'tags' => ['blank', 'red'],
        'size' => ['h' => 14, 'w' => 21, 'uom' => 'cm'],
    ],
    [
        'item' => 'mat',
        'qty' => 85,
        'tags' => ['gray'],
        'size' => ['h' => 27.9, 'w' => 35.5, 'uom' => 'cm'],
    ],
    [
        'item' => 'mousepad',
        'qty' => 25,
        'tags' => ['gel', 'blue'],
        'size' => ['h' => 19, 'w' => 22.85, 'uom' => 'cm'],
    ],
]);

注意:
(1)当集合不存在时,写入操作会创建该集合;
(2)在 MongoDB 中,存储在集合中的每个文档都需要一个唯一的 _id字段作为主键。如果插入的文档省略了该_id字段,MongoDB 驱动程序会自动为该字段生成一个ObjectId_id。

2、查询
集合inventory中有如下数据

db.inventory.insertMany([
   {
    item: "journal", qty: 25, size: {
    h: 14, w: 21, uom: "cm" }, status: "A" },
   {
    item: "notebook", qty: 50, size: {
    h: 8.5, w: 11, uom: "in" }, status: "A" },
   {
    item: "paper", qty: 100, size: {
    h: 8.5, w: 11, uom: "in" }, status: "D" },
   {
    item: "planner", qty: 75, size: {
    h: 22.85, w: 30, uom: "cm" }, status: "D" },
   {
    item: "postcard", qty: 45, size: {
    h: 10, w: 15.25, uom: "cm" }, status: "A" }
]);
方法 说明
find() 查询匹配的所有文档
findOne() 查询匹配的第一条文档

1)查询所有数据
shell:

db.inventory.find({
   })

php:

$cursor = $db->inventory->find([]);

2)指定相等条件
示例:从inventory集合中选择statusequals为"D"的所有文档。
shell:

db.inventory.find( {
    status: "D" } )

php:

$cursor = $db->inventory->find(['status' => 'D']);

3)使用查询运算符指定条件
示例:从inventory 集合中检索status等于"A"or"D"的所有文档
shell:

db.inventory.find( {
    status: {
    $in: [ "A", "D" ] } } )

php:

$cursor = $db->inventory->find(['status' => ['$in' => ['A', 'D']]]);

有关 MongoDB 查询运算符的完整列表,请参阅查询和投影运算符文档

4)指定AND条件
示例:检索inventory 集合中status等于"A" 和 qty小于30的所有文档
shell:

db.inventory.find( {
    status: "A", qty: {
    $lt: 30 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值