Mongosh 命令执行脚本
2025年03月02日
一、认识
二、语法
mongosh "mongodb://127.0.0.1:27017/数据库" xxx.js
三、用法
可以直接在 MongoDB Shell
中执行的示例脚本,脚本说明如下:
-
users
集合: 生成20
个用户,每个用户包含name
、email
、createdAt
字段; -
其他集合(
news
、recommendedContents
、schedules
、activityLists
): 针对每个用户生成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