mongodb atlas 集合的特定字段在 findOne 上给出 null 或 [] 并通过 mongoose 查找否则它的工作正常

编程入门 行业动态 更新时间:2024-10-08 04:28:20

mongodb atlas 集合的特定<a href=https://www.elefans.com/category/jswz/34/1771443.html style=字段在 findOne 上给出 null 或 [] 并通过 mongoose 查找否则它的工作正常"/>

mongodb atlas 集合的特定字段在 findOne 上给出 null 或 [] 并通过 mongoose 查找否则它的工作正常

我正在使用 Node Express 和 Mongodb Atlas 以及 mongoose 构建一个 Rest api

这些是供参考的文件,我不知道为什么我总是在通过 train_no 搜索值时得到 null 或空数组,如果我使用 train_name 或 train_no 以外的其他东西,它即使对于 _id 也能正常工作,但它没有为此提供任何价值

// model of the train collection


const mongoose = require("mongoose")


const seatSchema = new mongoose.Schema({
    charges_per_100km: Number,
    total_coach: Number,
    general_seats: Number,
    ladies_seats: Number,
    tatkal_seats: Number,
    senior_citizen: Number
})

const stationSchema = new mongoose.Schema({
    no: Number,
    code: String,
    station: String,
    state: String,
    arrival: String,
    departure: String,
    halt: Number,
    day: Number,
    distance: Number,
    distanceFromSrc: Number,
    dayofarrival: Number
})

const trainSchema = new mongoose.Schema({
    train_no: {
        type: Number,
        unique: [true, 'train with same no already exist']
    },
    type: String,
    train_name: String,
    schedule:String,
    distanceInKM: {
        type: Number,
    },
    runtime: {
        days: Number,
        hours: Number,
        mins: Number
    },
    stops: Number,
    avgSpeed: String,
    Route: [stationSchema],
    seatsAvailibility: {
        firstAc: seatSchema,
        secondAc: seatSchema,
        thirdAc: seatSchema,
        sleeper: seatSchema,
        chaircar: seatSchema,
        executivecar: seatSchema,
        accar:seatSchema
    },
    classes:String,
    return:Number
}, { timestamps: true })


const Train = mongoose.model('Train', trainSchema);

module.exports = Train;


//route for the query
const express = require('express');
const router = express.Router();
const { protect, authorize } = require('../middlewares/auth');
const { addTrain, editTrainByTrainID, getTrainByTrainID, deleteTrainByTrainID } = require('../controllers/train')

router.get('/',(req,res)=>{
    res.status(200).json({
        msg:"Welcome to Train Requests"
    })
})
router.post('/addTrain', protect, authorize(['admin']), addTrain);
router.get('/:train_id', protect, authorize(['admin']), getTrainByTrainID);
router.put('/:train_id', protect, authorize(['admin']), editTrainByTrainID);
router.delete('/:train_id', protect, authorize(['admin']), deleteTrainByTrainID);
router.post('/search', SearchTrain)

module.exports = router; 
// Controllers
const ErrorResponse = require('../utils/errorResponse');
const asyncHandler = require('../middlewares/async');
const Train = require("../models/train")
const fs = require("fs")

exports.addTrain = asyncHandler(async (req, res, next) => {
    const train = await Train.create(req.body);
    train.save();
    res.status(200).json({
        success: true,
        data: train
    })
})

exports.getTrainByTrainID = asyncHandler(async (req, res, next) => {
    await Train.find({
        train_no: req.params["train_id"]
    }, (err, train) => {
        if (err) {
            console.log(err);
        }
        res.status(200).json({
            success: true,
            train, param: req.params
        })
    })
})

exports.editTrainByTrainID = asyncHandler(async (req, res, next) => {
    const fieldsToUpdate = req.body;
    let train = await Train.findOneAndUpdate({ train_no: req.params.train_id }, fieldsToUpdate, {
        new: true,
        runValidators: true
    })
    res.status(200).json({
        success: true,
        data: train
    })
})

exports.deleteTrainByTrainID = asyncHandler(async (req, res, next) => {
    await Train.findOneAndDelete({ train_no: req.params.train_id });
    res.status(200).json({
        success: true,
        data: {}
    })
})


我期待这个查询通过它的 train_no 返回特定的火车数据,该数据存在于我的 mongodb atlas 中。

回答如下:

更多推荐

mongodb atlas 集合的特定字段在 findOne 上给出 null 或 [] 并通过 mongoose 查找否则它的工作正常

本文发布于:2024-05-13 13:42:48,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1759636.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:字段   工作   atlas   mongodb   mongoose

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!