跳到主要内容

Mongosh 命令执行脚本

2025年03月02日
柏拉文
越努力,越幸运

一、认识


二、语法


mongosh "mongodb://127.0.0.1:27017/数据库" xxx.js 

三、用法


可以直接在 MongoDB Shell 中执行的示例脚本,脚本说明如下:

  1. users 集合: 生成 20 个用户,每个用户包含 nameemailcreatedAt 字段;

  2. 其他集合(newsrecommendedContentsschedulesactivityLists: 针对每个用户生成 20 条数据,并关联到该用户(通过 userId 字段)。

// 生成 20 个用户数据,并为每个用户生成 20 条 news、recommendedContents、schedules、activityLists 数据

for (let i = 0; i < 20; i++) {
// 创建用户数据
const user = {
name: `User_${i + 1}`,
email: `user_${i + 1}@example.com`,
createdAt: new Date()
};

// 将用户插入 users 集合,获得生成的 _id
const userResult = db.users.insertOne(user);
const userId = userResult.insertedId;

// 针对每个用户生成 20 条其他集合的数据
for (let j = 0; j < 20; j++) {
// 插入 news 数据
db.news.insertOne({
userId: userId,
title: `News Title ${j + 1} for User ${i + 1}`,
content: `This is a sample news content ${j + 1} for User ${i + 1}.`,
createdAt: new Date()
});

// 插入 recommendedContents 数据
db.recommendedContents.insertOne({
userId: userId,
title: `Recommended Content ${j + 1} for User ${i + 1}`,
description: `Sample recommended content description ${j + 1} for User ${i + 1}.`,
createdAt: new Date()
});

// 插入 schedules 数据
db.schedules.insertOne({
userId: userId,
title: `Schedule ${j + 1} for User ${i + 1}`,
details: `Schedule details for User ${i + 1} schedule ${j + 1}.`,
createdAt: new Date()
});

// 插入 activityLists 数据
db.activityLists.insertOne({
userId: userId,
activity: `Activity ${j + 1} for User ${i + 1}`,
status: 'pending',
createdAt: new Date()
});
}
}

在终端中使用如下命令,其中 yourDatabaseName 替换成你的数据库名称,seed.js 替换成你的脚本文件路径:

mongosh yourDatabaseName seed.js