MongoDB v4.0 命令

2023-05-16

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 也可以用来进行关联查询

转载于:https://www.cnblogs.com/Zzang/p/11611490.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MongoDB v4.0 命令 的相关文章

随机推荐

  • 简历中工作经验应该如何写

    许多学习软件开发的学员不知道如何在个人简历中如何填写 项目经验 或 项目描述 xff0c 最近接触的一些学习Java的学生在简历中 xff0c 往往项目经验及描述都只能寥寥几笔完事 xff0c 这样的简历肯定是不吸引招聘企业HR的 那么软件
  • 计算机关机界面卡住,电脑关机时卡在关机界面的解决方法

    电脑关机时卡在关机界面的解决方法 发布时间 xff1a 2012 11 19 12 13 04 作者 xff1a 佚名 我要评论 笔记本或台式电脑的XP系统在关机的时候 xff0c 提示正在关闭或正在注销 xff0c 却一直无法正常关闭电脑
  • vue 指定index.html,在vue中,v-for的索引index在html中的使用方法

    在vue中 v for的索引index在html中的使用方法 如下所示 xff1a 以上这篇在vue中 v for的索引index在html中的使用方法就是小编分享给大家的全部内容了 xff0c 希望能给大家一个参考 xff0c 也希望大家
  • windows10 ubuntu子系统 WSL文件位置

    windows10 的linux子系统 xff08 windows subsystem for linux WSL 文件位置 以我的系统为例 xff0c WSL的root目录对应windows的 xff1a C Users xiaoPeng
  • CrawlSpiders简介

    转 xff1a https www cnblogs com ellisonzhang p 11124516 html 4295547 一 CrawlSpiders类简介 通过下面的命令可以快速创建 CrawlSpider模板 的代码 xff
  • python网络协议

    一 互联网的本质 咱们先不说互联网是如何通信的 发送数据 xff0c 文件等 xff0c 先用一个经典的例子 xff0c 给大家说明什么是互联网通信 现在追溯到八九十年代 xff0c 当时电话刚刚兴起 xff0c 还没有手机的概念 xff0
  • 通过css 改变通过img标签引入的svg颜色

    前言 修改svg颜色 xff0c 一般直接修改文件的svg的fill属性就可以了 xff0c 可以直接改svg属性 xff0c 也可以通过css修改 xff0c 但是前端一般都是通过img标签直接引入的svg图片 xff0c 这样不管是从后
  • Linux环境下vs code中Markdown与PlantUML联合工作

    PlantUML是一个可以让你快速编写UML图的组件 在线服务器 https www plantuml com plantuml uml SyfFKj2rKt3CoKnELR1Io4ZDoSa70000 Markdown是一种轻量级标记语言
  • FPGA到底是什么

    做FPGA设计这么久 xff0c 每次给别人介绍的时候 xff0c 总是感觉讲的不够深刻 xff0c 惭愧惭愧惭愧 这次 xff0c 我就FPGA的硬件属性来展开 xff0c 简单写写 xff0c 与大家分享 我的许多朋友都是经验丰富的算法
  • 一个玩游戏的失足青年,转行做游戏开发到教育的挣扎过程

    14年的IT从业经历 xff0c 中专毕业后在小镇上开过网吧 在网吧一年多的时间里 xff0c 天天陪人玩游戏 xff0c 后来去读了一个三流计算机专业 xff0c 毕业后转做软件开发 xff0c 最近五年转入游戏开发行业 xff01 从网
  • 电路设计基础--MOS管驱动直流电机电路,看懂芯片手册

    本例以驱动继电器为例 xff0c 来讲述相关电路设计 xff0c MOS管选型 xff0c 以及看懂芯片手册 驱动电路如下图 D1作用是泄放继电器的反向电动势 继电器参数 24V继电器 电大负载25A 250VAC xff0c 线圈电阻64
  • linux下 /usr/bin/ld: 找不到 -ldhnetsdk的解决方法

    linux下使用Qt编译程序的时候 xff0c 安装了程序自带的链接库之后 xff0c 仍然上报这个错误 xff0c 发现系统上报这个错误 xff1a usr bin ld 找不到 ldhnetsdk 经过仔细的定位 xff0c 终于解决了
  • 无人机--飞控科普

    无人机是无人驾驶飞机的简称 xff08 Unmanned Aerial Vehicle xff0c UAV xff09 xff0c 是利用无线电遥控设备和自备的程序控制装置的不载人飞机 xff0c 包括无人直升机 固定翼机 多旋翼飞行器 无
  • 远程桌面使用双屏或多屏

    选项 显示 将所有监视器用于显示 查了半天居然没有靠谱答案 xff0c 自己动手发现 转载于 https www cnblogs com phoenix p 4294103 html
  • 问题记录:未设置为接受端口“文件和打印机共享(SMB)”上的连接

    解决办法 xff1a 网络 xff08 右击 xff09 属性 本地连接 xff08 右击 xff09 属性 此连接使用下列选项 Microsoft网络的文和打印共享 xff08 打上勾 xff09 转载于 https www cnblog
  • arduino 语音音箱 :语音控制、MP3播放、报时、回复温湿度情况

    arduino 语音音箱 xff1a 语音控制 MP3播放 报时 回复温湿度情况 效果图 线路图 包装后的效果 功能 需要材料 arduino板MP3播放模块及喇叭时钟模块温湿度模块语音识别模块面包板及其他线材 电阻TF卡 xff08 用于
  • 通过多张网卡发送UDP多播(组播)数据

    在具有多个网卡的机器上 xff0c 如果想要从每个网卡发送UDP数据 xff0c 一般的做法是 xff1a 针对每张网卡的每个IP都绑定一个SOCKET xff0c 然后发送的时候针对每个SOCKET都发送一次 但是如果你要发送多播数据 x
  • 常见的HTTP状态码

    本内容摘抄自RESTful WebServices 中文译本附录B 39 42种常见的HTTP响应代码 39 原文作者 xff1a Leonard Ricbardson amp Sam Ruby 翻译 xff1a 徐涵 李红军 胡伟 1 三
  • ps快速切图

    妈呀 xff0c 不得不感慨一下 xff0c 切了这么久的图 xff0c 竟然不知道有个切图工具这么好用 以前我的切图流程 xff1a 拿到ui设计好的psd文件 61 61 gt 拉基准线 61 61 gt 切片工具切图 61 61 gt
  • MongoDB v4.0 命令

    MongoDB v4 0 命令 官方文档 gt 点这里 lt 操作系统库 操作管理员库 use admin 鉴权 db auth 34 root 34 34 admin 34 用户查看 格式美化 db system users find p