【问题标题】:can someone tell me what this error mean?有人能告诉我这个错误是什么意思吗?
【发布时间】:2022-10-16 19:57:41
【问题描述】:

MongoError:无法在地图集中对管理员进行原始查询 我试图运行:

 mongoose
  .connect(
    'mongodb+srv://yonco:mypassword@shop.iujhp.mongodb.net/?retryWrites=true&w=majority'
  )
  .then(result => {
    User.findOne().then(user => {
      if (!user) {
        const user = new User({
          name: 'yonc',
          email: 'yonc@rest.com',
          cart: {
            items: []
          }
        });
        user.save();
      }
    });
    app.listen(3000);
  })
  .catch(err => {
    console.log(err);
  });

我实际上从我正在做的课程中复制了源代码,但错误仍然存​​在

【问题讨论】:

标签: node.js mongodb express mongoose


【解决方案1】:

您的字符串应如下所示:

mongodb://<user>:<password>@cluster0-shard-00-00-rnmsm.mongodb.net:27017,cluster0-shard-00-01-rnmsm.mongodb.net:27017,cluster0-shard-00-02-rnmsm.mongodb.net:27017/test?ssl=true&replicaSet=cluster0-shard-0&authSource=admin&retryWrites=true&w=majority

正确使用您的用户名和密码。

我建议使用 env 连接到 MongoDB url,因为它包含用户详细信息。

环境文档:https://www.twilio.com/blog/working-with-environment-variables-in-node-js-html

【讨论】:

  • 我很高兴它对您有所帮助:)。