1. Я пытаюсь запросить коллекцию «radar_life_cycle» в базе данных «teamautomation» через узел ниже.js, как показано ниже.
2. Я создал соответствующую модель подключение к mongodb через mongoose прошло успешно, ошибок нет, но я получаю пустой список.
[] это пустой список, но я вижу, что в базе данных есть записи, может ли кто-нибудь подсказать, что здесь может быть не так?app.js
const express = require("express");
const mongoose = require("mongoose");
const Radar_life_cycle = require("./models/radar_life_cycle");
const app = express();
mongoose
.connect(
"mongodb://username:[email protected]:27017/wifiautomation"
)
.then(() => {
console.info("Connected to database!");
})
.catch(() => {
console.info("Connection failed!");
});
app.get("/api/radars", (req, res, next) => {
Radar_life_cycle.find({ orgRadar: "51918661" }).then(documents => {
res.status(200).json({
message: "Posts fetched successfully!",
posts: documents
});
});
});
модели/radar_life_cycle
const mongoose = require('mongoose');
const radar_life_cycle_Schema = mongoose.Schema({
Delivered: String,
orgRadar: String,
root_build: String,
inserted_by: String,
milestone: String,
applicable_chipsets: [String],
project_tag: String,
gerrits:String,
inserted_on:Date,
SDK:String
});
module.exports = mongoose.model('radar_life_cycle', radar_life_cycle_Schema);
ВЫХОД:-
terminal$ nodemon server.js
[nodemon] 1.14.12
[nodemon] to restart at any time, enter `rs`
[nodemon] watching: *.*
[nodemon] starting `node server.js`
(node:17500) DeprecationWarning: current URL string parser is deprecated, and will be removed in a future version. To use the new parser, pass option { useNewUrlParser: true } to MongoClient.connect.
Connected to database!
{"message":"Posts fetched successfully!","posts":[]}
Ожидаемый результат: -
{"message":"Posts fetched successfully!","posts":should include the corresponding records}
Скриншот документа в базе данных:
@RaviShankarBharti - Да, я уверен, что в базе данных есть запись, я обновил свой вопрос скриншотом, что может быть не так?
Вы пытались передать имя коллекции в качестве третьего параметра (mongoose.model('radar_life_cycle', Radeon_life_cycle_Schema, 'radar_life_cycle'))? Mongoose добавит «s» к имени коллекции, и это может быть источником вашей проблемы.





app.get("/api/radars", (req, res, next) => {
Radar_life_cycle.find({ orgRadar: "51918661" }).then(documents => {
res.status(200).json({
message: "Posts fetched successfully!",
posts: documents[0]
});
});
});
find метод находит все документы в базе данных, в этом случае кажется, что есть только один... Если их больше, вы можете обновить код выше и получить доступ к документам, используя цикл.
Если я сделаю так, как вы предложили, поля сообщений полностью исчезнут ... Я получаю только {"message":"Posts fetched successfully!"}
Попробуйте схему таким образом, возможно, это не очень хорошая ссылка на коллекцию.
const { Schema } = require('mongoose');
const radar_life_cycle_Schema= new Schema({
Delivered: String,
orgRadar: String,
root_build: String,
inserted_by: String,
milestone: String,
applicable_chipsets: [String],
project_tag: String,
gerrits:String,
inserted_on:Date,
SDK:String
},
{
collection: 'radar_life_cycle',
timestamps: { createdAt: true, updatedAt: true },
});
module.exports = mongoose.model('radar_life_cycle', radar_life_cycle_Schema);
Вы уверены, что у вас есть документы в вашей базе данных, так как код выглядит отлично.