微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法在猫鼬中运行命令

如何解决无法在猫鼬中运行命令

问题陈述

我无法在 Mongoose 的 model.db.db.admin().command() 方法中运行 MongoDB 命令。它给了我错误UnhandledPromiseRejectionWarning: MongoError: no such command: '0'


我的尝试

  • 我已经尝试在我的 CLI 和 MongoDB Compass Shell 中运行它,看看它是否是我的命令错误,它似乎是,它给了我这个错误

SyntaxError: Unexpected token,expected ";" (1:15)

mongoexport -c appointment -o appointments_2021_04_10_9_52.json

  • 我在谷歌上搜索了好几个小时,试图找出如何修复这些错误并在 Mongoose 中运行正确的命令。

请注意:我对 Mongoose/NodeJS 和 MongoDB 还很陌生。另外,我在本地运行 MongoDB。


我的代码 (app.js)

app.get('/exportAllAppoinments',(req,res) => {

    mongoose.connect(mongoUrl,{ useNewUrlParser: true,useUnifiedTopology: true }).then(() => {

        const dateTime = moment().format('yyyy_mm_dd_hh_mm');
        console.log(dateTime);

        modelAppointment.db.db.admin().command('mongoexport --collection=appointment --out=appointments_' + dateTime + '.json').then(result => {
            console.log(result);
        });
    },err => console.log(err)
    );
});

预期结果

Mongoose 应该导出整个集合并将文件发送回前端。


实际结果

它什么都不做,并给我一个错误,如开头所示。

解决方法

modelAppointment.db.db.admin().command() 用于向 MongoDB 提交 database command

mongoexport 是命令行工具,不是数据库命令。

您可以尝试使用 child_process 中的 exec 来运行命令。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。