You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法使用MongoDB Atlas数据库:无find权限及路径疑问

问题解决:MongoServerError: user is not allowed to do action [find] on [product.book]

这个错误和你的API路径(/book还是/books)无关,核心原因是你在MongoDB Atlas中配置的数据库用户,没有对product数据库下的book集合执行find操作的权限。

解决步骤:

  • 登录MongoDB Atlas控制台,进入你的cluster0集群
  • 点击左侧菜单栏的「Database Access」(数据库访问)
  • 找到代码中DB_USER对应的用户,点击右侧的「Edit」按钮
  • 在「Database User Privileges」区域,配置合适的权限:
    • 开发环境可以直接选择「Read and write to any database」权限,快速解决
    • 生产环境建议精细化授权:点击「Add Privilege」,选择「Built-in Role」中的read,然后指定数据库为product
  • 保存修改,等待1-2分钟让权限生效

额外确认:

  1. 你的代码中集合名称是book,错误提示里明确指向product.book,说明集合名称是匹配的,不需要改成books
  2. API路径/book是自定义的路由,和数据库集合名称没有强制关联,如果你想改成/books只是命名风格问题,不影响当前报错的解决

你的代码:

const express = require('express');
const cors = require('cors');
require('dotenv').config();
const port = process.env.PORT || 5000;
const app = express();
const { MongoClient, ServerApiVersion } = require('mongodb');

// midlewarwe

app.use(cors());
app.use(express.json());

const uri = `mongodb+srv://${process.env.DB_USER}:${process.env.DB_PASS}@cluster0.ibawcfn.mongodb.net/?retryWrites=true&w=majority`;
const client = new MongoClient(uri, {
  useNewUrlParser: true,
  useUnifiedTopology: true,
  serverApi: ServerApiVersion.v1,
});

async function run() {
  try {
    await client.connect();
    const bookCollection = client.db('product').collection('book');

    app.get('/book', async (req, res) => {
      const query = {};
      const cursor = bookCollection.find(query);
      const books = await cursor.toArray();
      res.send(books);
    });
    // app.post('/books', async (req, res) => {

    //     const  newBook = req.body;
    //     const result = await bookCollection.insertOne(newBook);
    //     res.send(result);
    // });
  } finally {
  }
}
run().catch(console.dir);

app.get('/', (req, res) => {
  res.send('hello world ');
});

app.listen(port, () => {
  console.log('listening on port ', port);
});

内容的提问来源于stack exchange,提问作者Rafsan Ahmed Raj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 21:55:27