代码之家  ›  专栏  ›  技术社区  ›  Boris K

Mongoose find返回一个空白数组,RoboMongo查找数据

  •  0
  • Boris K  · 技术社区  · 7 年前

    我有一个Express应用程序,直到今天早上它还在从数据库返回一个对象数组。现在它返回一个空数组。RoboMongo向我展示了数据仍然存在并且做得很好。有什么想法吗?

    我的型号:

    const mongoose = require('mongoose');
    const Schema = mongoose.Schema;
    const plotStatusSchema = new Schema(
        {
            recordDate: Date,
            blockName: String,
            growerName: String,
            company: String,
            variety: String,
            planted: Number,
            region: String,
            yieldInKG: Number,
            changeInPcnt: Number,
            currentRipeness: String,
            nextStage: String,
            timeToNextInDays: Number,
            status: Number
        },
        { bufferCommands: false },
        { collection: 'plotStatuses' }
    );
    
    const ModelClass = mongoose.model(
        'plotStatus',
        plotStatusSchema,
        'plotStatuses'
    );
    
    module.exports = ModelClass;
    

    我的返回控制器:

    const PlotStatus = require('../models/plotStatus');
    const jsonpack = require('jsonpack');
    
    exports.plotStatuses = async (req, res) => {
        const plotStatus = await PlotStatus.find({
            company: 'req.user.companyCode'
        }).lean();
        if (!plotStatus) {
            throw new Error('Plot Statuses not found');
        } else {
            res.send(plotStatus);
        }
    };
    

    我的数据示例:

    {
        "_id" : ObjectId,
        "recordDate" : ISODate,
        "blockName" : String,
        "blockCode" : String,
        "growerName" : String,
        "company" : String,
        "variety" : String,
        "planted" : ISODate,
        "region" : String,
        "yieldInKG" : Number,
        "changeInPcnt" : Number,
        "currentRipeness" : String,
        "nextStage" :String,
        "timeToNextInDays" : Number,
        "status" : Number,
        "targetYieldInKG" : Number,
        "currentStatePercentage" : Number,
        "totalLengthOfPhase" : Number,
        "nextPhaseStart" : ISODate,
        "currentBrix" : Number,
        "currentPh" : Number,
        "currentTA" : Number,
        "plotGeoJSON" : Object,
        "historicalData" : Array
    }
    

    我知道模式不再匹配JSON的形状,但我是否可以返回所有符合查找条件的JSON?

    1 回复  |  直到 7 年前
        1
  •  1
  •   rollstuhlfahrer    7 年前

    您正在搜索 company 属性显然,您的数据中没有公司代码。请在没有问题的情况下重试:

    const plotStatus = await PlotStatus.find({
        company: req.user.companyCode
    }).lean();