MongoDB v4.0 命令

本文详细介绍了MongoDB 4.0版本的数据库管理与操作命令,包括用户管理、权限配置、数据增删改查及批量操作等核心功能。同时,深入解析了如何使用$lookup进行联表查询,实现数据关联与整合。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MongoDB v4.0 命令

官方文档 > 点这里 <

操作系统库

#操作管理员库
use admin
#鉴权
db.auth("root","admin");
#用户查看(格式美化)
db.system.users.find().pretty();

#新增用户
db.createUser({
    user: 'root1',
    pwd: 'admin1',
    roles: [ { role: "dbOwner", db: "yapi" }]
});
  
#更新用户信息/密码/权限
db.updateUser("root1",{
    pwd: "admin2",
    roles:
    [{
        role: "root",
        db: "admin"
      },{
        role: "userAdminAnyDatabase",
        db: "admin"
      },{
        role: "readWriteAnyDatabase",
        db: "admin"
      },{
        role: "dbAdminAnyDatabase",
        db: "admin"
}]})

#删除数据库所属用户
db.dropUser("root1");

操作自定义库

#操作自定义库
use persionalDB

#鉴权
db.auth("user","pwd");

#创建数据库所属用户
db.createUser({
    user: 'username1',
    pwd: 'password1',
    roles: [ { role: "dbOwner", db: "yapi" }]
});
  
#更新用户信息/密码/权限
db.updateUser("username1",{
    pwd: "NEW pass",
    roles:
    [{
        role: "root",
        db: "admin"
      },{
        role: "userAdminAnyDatabase",
        db: "admin"
      },{
        role: "readWriteAnyDatabase",
        db: "admin"
      },{
        role: "dbAdminAnyDatabase",
        db: "admin"
}]});

#删除数据库所属用户
db.dropUser("username1");

1.0.0 基础操作 [collection]= 所查集合名

use [db_name];

db.[collection].insert({[title]:'[value]'});
eg: 
    db.hellocollction.insert({name:'hello'});

# 单个插入
db.inventory.insertOne(
   { item: "canvas", 
     qty: 100, 
     tags: ["cotton"], 
     size: { 
            h: 28, 
            w: 35.5, 
            uom: "cm" 
        } 
    }
)
# 批量插入
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.1 ============>增<============

- db.[collection].insertOne()/insertMany()

title

1.2 ============>查<============

- db.[[collection]].find()

title

1.3 ============>改<============

- db.[collection].updateOne()/updateMany()/replaceOne()

title

1.4 ============>删<============

- db.collection.deleteOne()/deleteMany()

title

2.0 高级: 联表查询 Join

初始数据

db.product.insert({"_id":1,"productname":"商品1","price":15});
db.product.insert({"_id":2,"productname":"商品2","price":36});
 
db.order.insert({"_id":1,"pid":1,"ordername":"订单1","uid":1});
db.order.insert({"_id":2,"pid":2,"ordername":"订单2","uid":2});
db.order.insert({"_id":3,"pid":2,"ordername":"订单3","uid":2});
db.order.insert({"_id":4,"pid":1,"ordername":"订单4","uid":1});
 
db.user.insert({"_id":1,"username":1});
db.user.insert({"_id":2,"username":2});
 
db.product.find();
db.order.find();
db.user.find();

2.1 $lookup 两表关联join

db.product.aggregate([
    {
      $lookup:
        {
          from: "order",
          localField: "_id",
          foreignField: "pid",
          as: "inventory_docs"
        }
   }
]);
#结果:
{
    "_id" : 1.0,
    "productname" : "商品1",
    "price" : 15.0,
    "inventory_docs" : [
        {
            "_id" : 1.0,
            "pid" : 1.0,
            "ordername" : "订单1"
        },
        {
            "_id" : 4.0,
            "pid" : 1.0,
            "ordername" : "订单4"
        }
    ]
}

lookup 就是使用 aggregate 的 $lookup 属性,$lookup 操作需要一个四个参数的对象:

  • localField:在输入文档中的查找字段
  • from:需要连接的集合
  • foreignField:需要在from集合中查找的字段
  • as:输出的字段名字

    2.2 $lookup 三表关联join

db.order.aggregate([
    {
        "lookup": {
            "from": "product",
            "localField": "pid",
            "foreignField": "_id",
            "as": "inventory_docs"
        }
    },{
        "lookup": {
            "from": "user",
            "localField": "uid",
            "foreignField": "_id",
            "as": "user_docs"
        }
    }
]);

除了 $lookup,populate 也可以用来进行关联查询
### 如何使用 YUM 安装 MongoDB 4.0.26 为了在基于 Red Hat 的 Linux 发行版上通过 YUM 安装特定版本的 MongoDB (例如 4.0.26),需要遵循一系列操作来确保软件包管理器能够识别并下载所需的版本。 #### 创建或编辑 YUM 源文件 首先,进入 `/etc/yum.repos.d` 文件夹,并创建一个新的 `.repo` 文件用于定义 MongoDB 软件仓库的位置和属性[^2]: ```bash cd /etc/yum.repos.d/ vi mongodb-org-4.0.repo ``` 在此文件中添加如下内容以指定要使用的 MongoDB 存储库: ```ini [mongodb-org-4.0] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc ``` #### 安装指定版本的 MongoDB 完成上述配置后,可以利用 `yum install` 命令加上具体的版本号来进行安装。对于想要安装 MongoDB 4.0.26 版本的情况,则执行下面这条命令[^1]: ```bash sudo yum install -y mongodb-org-4.0.26 ``` 需要注意的是,在某些情况下可能还需要单独指明各个组件的确切版本,比如服务器端、工具集等。如果遇到依赖关系问题或者找不到确切版本时,可以通过查询可用版本列表找到最接近的目标版本再做调整。 #### 启动与验证 MongoDB 服务 一旦成功安装完毕,启动 MongoDB 并设置开机自启功能: ```bash sudo systemctl start mongod sudo systemctl enable mongod ``` 最后确认 MongoDB 是否正在运行以及监听默认端口(通常是 27017): ```bash netstat -plnt | grep 27017 ``` 也可以尝试连接到本地实例测试其工作状态: ```bash mongo --version mongo ``` 这将显示当前 Shell 所连数据库的信息,并提供交互式的 JavaScript 环境供进一步探索[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值