【问题标题】:How can I get the data of particular collection of mongodb?如何获取特定 mongodb 集合的数据?
【发布时间】:2021-07-05 17:57:25
【问题描述】:

在下面的第 4 行中,Messages 是我在其他文件上创建的 mongodb 集合名称。如果我找到此集合的数据,则不会发生错误。

但是当我在 mongodb 网站上手动创建其他 mongodb 集合名称时,它会出错。

import express from "express";
import mongoose from "mongoose";
import Pusher from "pusher";
import Messages from "./messages.js";
import dynamicModel from "./messagesRoom.js";
import cors from "cors";

// app configuration

const app = express();
const port = process.env.PORT || 9000;

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

// DB Configuration

const url = "mongodb+srv://suraj_bisht_99:zoe6B82AZjaLXgw7@cluster0.zp9dc.mongodb.net/Whatsapp_MERN";
mongoose.connect(url, {useCreateIndex: true, useNewUrlParser: true, useUnifiedTopology: true})
        .then(()=> console.log('mongoDB is connected'))
        .then(err => console.log(err));


// API routes

app.get("/", (req, res) => {
    res.status(200).send("Hello World");
})


app.get("/messages/sync", async (req, res) => {
        await other__collection.find( (err, data) => {
            if(err){
                console.log(err);
                res.status(500).send(err);
            }else{
                res.status(200).send(data);
            }
        })
})


app.post("/messages/new", async (req, res) => {
     
    try{
        const newMessage = new Messages(req.body);
        const newMessageCreated = await newMessage.save();
        res.status(201).send(newMessageCreated);
    }
    catch(err){
        res.status(400).send(err);
    }
});

// listening part 

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

我的问题是如何以与我在其他文件上创建的集合相同的方式获取其他 mongoDB 集合的数据

这是我的消息集。

import mongoose from "mongoose";

const messageSchema = mongoose.Schema( {
      message: String,
      name: String,
      timestamp: String,
      received: Boolean,
});

const messageContent = mongoose.model('messageContent', messageSchema);

export default messageContent;

【问题讨论】:

    标签: javascript reactjs mongodb express mongoose


    【解决方案1】:

    由于您使用的是mongoose,因此您必须为每个集合创建一个架构和一个模型,然后您可以使用该模型查询 MongoDB。

    因此,就像您对 messageContent 所做的那样,为该其他集合创建一个架构和一个模型,并在您查询数据库时使用该模型。

    【讨论】:

    • 我已经按照你所说的做了,我没有在我的代码中显示那部分,但我已经做到了。但即便如此,我也无法获取这些集合的数据。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多