mongoDB-mongosh

mongoDB Shell (mongosh) 是一个功能齐全的 JavaScript 和 Node.js 14.x REPL 环境,用于与 MongoDB 数据库进行交互。我们通过使用 MongoDB Shell 直接进行数据库的测试查询等操作。

1. 安装:

参考:https://www.mongodb.com/docs/mongodb-shell/install
下载链接:https://www.mongodb.com/try/download/shell?jmp=docs

2. 连接mongoDB

以windows 版本的mongosh 为例,目前mongosh 支持mongoDB 4.0 以上的版本。

2.1 连接可选参数
参数 描述
--port 数据库连接端口,默认是27017
--host 数据库主机地址,默认为localhost
--username 用户名
--password 秘密
----authenticationDatabase 身份认证的数据库名称
--tls 是否使用tls认证
2.2默认端口上的本地 MongoDB 实例

在没有任何命令行选项的情况下运行 mongosh, 是以使用默认端口 27017 连接到在本地主机上运行的 MongoDB 实例:

$mongosh.exe
Current Mongosh Log ID: 6273cd03c8bcf3b90714406a
Connecting to:          mongodb://127.0.0.1:27017/?  directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+1.3.1
Using MongoDB:          6.0.0-rc4
Using Mongosh:          1.3.1

等价于

mongosh.exe "mongodb://localhost:27017"

mogosh 默认连接数据库的port为27017
指定数据库连接

// 例: 指定名叫test的数据库
  mongosh.exe "mongodb://localhost:27017/test"
2.3指定端口的本地MongoDB实例
mongosh.exe "mongodb://localhost:28015"

或者通过 --port参数指定

mongosh.exe --port 28015
2.4 远程主机上的 MongoDB 实例
momgosh.exe "mongodb://[主机地址]:端口 "

例: 远程主机地址为mongodb0.example.com,端口为:28015

mongosh.exe "mongodb://mongodb0.example.com:28015"

或者是通过--host--port参数指定远程主机

mongosh.exe  --host mongodb0.example.com --port 28015
2.5 连接到服务器副本集(replica set)

例: 连接一个三个成员的副本集,集合叫replA :

  mongosh.exe "mongodb://mongodb0.example.com.local:27017,mongodb1.example.com.local:27017,mongodb2.example.com.local:27017/?replicaSet=replA"
2.6 查看当前连接:

当mongosh 连接数据库成功后,通过如下指令查看连接状态

$ db.geMongo()
mongodb://127.0.0.1:27017/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+1.3.1

3. 操作:

3.1 增删改查(CURD)
3.1.1 插入
  • 插入一条document
    语法:db.collection名.insertOne()

    // 示例,在inventory 的collection 中插入一条document
    db.inventory.insertOne(
       { item: "canvas", qty: 100, tags: ["cotton"], size: { h: 28, w: 35.5, uom: "cm" } }
    )
    
  • 批量插入
    语法:db.collection.insertMany(), 传入的参数是documents 数组

    // 示例
      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. 如果待插入的collection 不存在,此时会新建一个
    2. 在 MongoDB 中,存储在collection 中的每个document都需要一个唯一的 _id 字段作为主键。如果插入的文档省略了 _id 字段,MongoDB 驱动程序会自动为 _id 字段生成一个 ObjectId对象
3.1.2 查看

语法:db.collection名.find()

示例: 先批量插入如下测试数据

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" }
]);
  • 匹配嵌套document
3.1.3 更新
3.1.4 删除

你可能感兴趣的:(mongoDB-mongosh)