javascript - 制作一个脚本以从 Mongo shell 创建 MongoDB 集合?
问题描述
您能否帮我编写 Mongo Shell 脚本来创建新的集合和索引。这是我编写的代码的一部分,我需要对其进行重构。
db.createCollection("Dog", { autoIndexId : true});
db.createCollection("Cat", { autoIndexId : true});
db.createCollection("Mouse", { autoIndexId : true});
db.createCollection("Name", { autoIndexId : true});
在上面的代码中,我可以编写单个语句来创建多个集合吗?并且还一次性将多个索引添加到一个集合?
解决方案
使用以下命令创建一个名为“my_scripts.js”的文件。dogs
该 JavaScript 定义了创建两个集合 (和)的数据和命令cats
,它们的数据(作为 JSON 的文档)和索引(name
在集合的字段上创建索引)。
my_scripts.js:
let dogDocs = [
{
name: "pooch",
breed: "poodle",
weight: "6 lbs"
},
{
name: "mutt",
breed: "bulldog",
weight: "10 lbs"
}
];
let catDocs = [
{
name: "minni",
breed: "persian",
color: "white"
},
{
name: "tinkle",
breed: "bombay",
color: "black"
}
];
let dogIndex = { name : 1 };
let catIndex = { name : 1 };
let collInfoObjs = [
{ coll: "dogs", data: dogDocs, index: dogIndex },
{ coll: "cats", data: catDocs, index: catIndex }
];
for (obj of collInfoObjs) {
db[obj.coll].insertMany(obj.data);
db[obj.coll].createIndex(obj.index);
}
运行脚本文件:
从mongo shell运行脚本(您可以使用load
命令指定文件路径):
mongo > load("my_script.js");
脚本运行后,您可以单独使用以下命令来验证集合、它们的文档和索引:
db.dogs.find();
db.cats.find();
db.dogs.getIndexes();
db.cats.getIndexes();
请注意,如果您未在输入 JSON 数据中提供 ,则文档将创建一个唯一_id
字段(类型为)。ObjectId
_id
推荐阅读
- python - 提取 lzma 压缩的 tar 归档成员而不写入磁盘
- javascript - 在没有 Webview 的情况下快速渲染 Javascript 页面
- java - Hibernate + MySQL:无法打开连接
- javascript - 使用 fetch 在节点中进行异步 api 调用的最佳实践?
- elasticsearch - Elasticsearch 的结果数量随分页而变化
- ios - 带有双条件和 || 的 While 循环 Swift 中的逻辑运算符
- c# - 预期的类型是 'System.Nullable`1[System.Guid]' 但实际值为 null
- c# - Xamarin Forms 数据网格不显示相关数据
- python - 无法使用我刚刚安装的任何模块
- javascript - Js鼠标悬停事件