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

Mongoose find is returning a blank array, RoboMongo finds data

我有一个 Express 应用程序,直到今天早上它还在 return 从数据库中获取一组对象。现在是 returning 一个空数组。 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;

我的 returning 控制器:

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
}

我知道 Schema 不再匹配 JSON 的形状,但我可以 return 所有符合查找条件的 JSON 吗?

您正在 company 属性内搜索字符串 "req.user.companyCode"。显然,您的数据中没有该公司代码。在没有 quores 的情况下重试:

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