在控制台中使用片段

警告:

此功能是实验性的。MongoDB 不提供对片段的支持。此功能可能随时更改或删除,恕不另行通知。

预计不会出现错误,但是如果您遇到错误,请在 GitHub 仓库 对于这个项目。

此页面概述了在 mongosh控制台中使用片段。

安装片段包

您必须先安装一个代码片段包,然后才能使用它。安装片段包后,每次 mongosh启动时都会加载它。

如果您知道要安装的片段的名称,请输入:

snippet install <name>

否则,搜索存储库以获取可用片段列表。

snippet search

安装片段后,输入y以加载它。

 Running install...
 Installed new snippets analyze-schema. Do you want to load them now? [Y/n]: y
 Finished installing snippets: analyze-schema

笔记:

如果这是您第一次使用代码片段,您可能会看到如下警告:

This operation requires downloading a recent release of npm. Do
you want to proceed? [Y/n]:

您必须安装 npm 才能使用片段。

运行片段

在运行新代码段之前,运行snippet help <SNIPPET NAME>以了解有关代码段功能的更多信息。

例如,表示您可以通过传递集合名称来snippet help analyze-schema使用 the 。analyze-schema

testDB> snippet help analyze-schema
 # analyze-schema
 Analyze the schema of a collection or a cursor.
```js
> schema(db.coll);
┌─────────┬───────┬───────────┬────────────┐
│ (index) │   0   │     1     │     2      │
├─────────┼───────┼───────────┼────────────┤
│    0    │ '_id' │ '100.0 %' │ 'ObjectID' │
│    1    │ 'a  ' │ '50.0 %'  │  'Number'  │
│    2    │ 'a  ' │ '50.0 %'  │  'String'  │
└─────────┴───────┴───────────┴────────────┘

一旦您知道如何调用片段,就可以像下面的示例一样使用它。

考虑reservations集合:

db.reservations.insertMany( [
   {"_id": 1001, "roomNum": 1, "reserved": true },
   {"_id": 1002, "roomNum": 2, "reserved": true },
   {"_id": 1003, "roomNum": 3, "reserved": "false" },
   {"_id": 1004, "roomNum": 4, "reserved": true },
] )

要分析集合,安装如果代码 analyze-schema片段不存在,则传入集合名称以运行它。

snippet install analyze-schema
schema(db.reservations)

带有的文档"_id": 3被误输入为字符串。分析表明,reserved除了预期的布尔值之外,该字段还包含字符串元素。

┌─────────┬────────────┬───────────┬───────────┐
│ (index) │     0      │     1     │     2     │
├─────────┼────────────┼───────────┼───────────┤
│    0    │ '_id     ' │ '100.0 %' │ 'Number'  │
│    1    │ 'reserved' │ '75.0 %'  │ 'Boolean' │
│    2    │ 'reserved' │ '25.0 %'  │ 'String'  │
│    3    │ 'roomNum ' │ '100.0 %' │ 'Number'  │
└─────────┴────────────┴───────────┴───────────┘

卸载片段

使用snippet uninstall命令删除片段。如果您不确定名称,该snippet ls命令会列出所有已安装的片段。

此代码卸载analyze-schema代码段。

snippet uninstall analyze-schema

查找可用的代码段包

snippet ls命令返回本地安装的片段列表以及一些版本和源信息。

snippets@ /root/.mongodb/mongosh/snippets
├── mongosh:PRIVATE..DecryptCards@1.0.5
├── mongosh:analyze-schema@1.0.5
└── npm@7.23.0

要查看注册表中可用的片段,首先 refresh是本地元数据缓存,然后是search.

snippet refresh
snippet search

snippet search列出可用的片段、它们的版本,并给出简短的描述。

此实例配置了第二个私有注册表。由于首先列出了私有注册表,因此这些片段在可用片段列表中位于 MongoDB 片段之前。

┌─────────┬─────────────────────────────────┬─────────┬────────────────────────────────────────────────────────────────┐
│ (index) │              name               │ version │                          description                           │
├─────────┼─────────────────────────────────┼─────────┼────────────────────────────────────────────────────────────────┤
│    0    │     'PRIVATE..DecryptCards'     │ '1.0.5' │                 'Decrypt credit card numbers'                  │
│    1    │ 'PRIVATE..updateAuthentication' │ '1.0.2' │             'Update user pwds and authentication'              │
│    2    │          'resumetoken'          │ '1.0.2' │                 'Resume token decoder script'                  │
│    3    │          'mongocompat'          │ '1.0.7' │            'mongo compatibility script for mongosh'            │
│    4    │         'spawn-mongod'          │ '1.0.1' │                'Spin up a local mongod process'                │
│    5    │        'mock-collection'        │ '1.0.2' │ 'mockCollection([{ a: 1 }, { a: 2 }]).find({ a: { $gt: 2 } })' │
│    6    │        'analyze-schema'         │ '1.0.5' │                       'schema(db.coll)'                        │
└─────────┴─────────────────────────────────┴─────────┴────────────────────────────────────────────────────────────────┘

获取存储库信息

显示每个片段存储库的主页和 URL:

snippet info

输出列出了每个存储库。

Snippet repository URL:      https://github.com/YOUR_COMPANY/YOUR_REPO_PATH/index.bson.br
  -->  Homepage:             https://davemungo.github.io/mongosh-snippets/
Snippet repository URL:      https://compass.mongodb.com/mongosh/snippets-index.bson.br
  -->  Homepage:             https://github.com/mongodb-labs/mongosh-snippets

获取代码片段的帮助

每个片段都是独一无二的,并且有自己的界面。查找有关特定片段如何工作的信息的最佳方法是 README通过运行查看其文件snippet help

snippet help mongocompat

此命令显示README文件的mongocompat 控制台中的片段mongosh

# mongocompat
Provide `mongo` legacy shell compatibility APIs.
```js
> Array.sum([1, 2, 3])
6
> tojsononeline({a:1,b:2,c:3})
{  "a" : 1,  "b" : 2,  "c" : 3 }
```

当您创建自己的代码片段包时,请务必包含一个README.md提供有用帮助的文件。

翻译:韩鹏帅

原文:Use Snippets in the Console

Copyright © 上海锦木信息技术有限公司 all right reserved,powered by Gitbook文件修订时间: 2023-09-01 17:10:26

results matching ""

    No results matching ""