2 votes

L'interrogation de mongodb via nodejs donne un résultat vide ?

1. j'essaie d'interroger la collection "radar_life_cycle" dans la base de données "teamautomation" via node below.js comme ci-dessous

2.j'ai créé le modèle correspondant la connexion à mongodb via mongoose est réussie ,il n'y a pas d'erreurs mais j'obtiens une liste vide.

  1. Comme vous pouvez le voir dans le résultat ci-dessous, les postes sont [] est une liste vide mais je peux voir qu'il y a des enregistrements dans la base de données, quelqu'un peut-il m'aider à comprendre ce qui ne va pas ici ?

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:password@1x.xxx.xxx.x:27017/wifiautomation"
  )
  .then(() => {
    console.log("Connected to database!");
  })
  .catch(() => {
    console.log("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
    });
  });
});

modèles/radar_cycle de vie

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);

SORTIE : -

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":[]}

Résultat attendu : -

{"message":"Posts fetched successfully!","posts":should include the corresponding records}

Capture d'écran du document dans la base de données :

enter image description here

1voto

Juanes Velasquez Points 130

Essayer le schéma de cette façon n'est peut-être pas une bonne référence à la collection.

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);

0voto

James Points 60
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 trouve tous les documents dans la base de données dans ce cas, il semble qu'il n'y en ait qu'un seul... S'il y en a plus, vous pouvez mettre à jour le code ci-dessus et accéder aux documents en utilisant une boucle.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X