Node.js 猫鼬-结果为空,但在猫鼬壳中效果良好

Node.js 猫鼬-结果为空,但在猫鼬壳中效果良好,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,在我的应用程序中,从mongoose查询中获取结果时遇到问题。通过mongo shell我可以运行 db.statements.find({“name”:“CASH HSBC”})并获得正确的结果,但是当我通过下面的代码运行等价物时 和console.log()我得到的响应[],我不明白为什么 我下面有一个模型 var mongoose = require('mongoose'); var Schema = mongoose.Schema; var statementSchema = new

在我的应用程序中,从mongoose查询中获取结果时遇到问题。通过mongo shell我可以运行
db.statements.find({“name”:“CASH HSBC”})
并获得正确的结果,但是当我通过下面的代码运行等价物时 和
console.log()
我得到的响应
[]
,我不明白为什么

我下面有一个模型

var mongoose = require('mongoose');
var Schema = mongoose.Schema;

var statementSchema = new Schema({
date : {type:Date, required:true},
name: {type:String, required:true},
amount: {type:Number, required:true}
});

module.exports = mongoose.model('Statement', statementSchema);
然后在我的js路线中

var express = require('express');
var router = express.Router();
var parseDate = require('../helpers/parseDate');
var mongoose = require('mongoose');
var Statement = require('../models/statement');


/* GET home page. */
router.get('/', function(req, res, next) {
res.send('You need to add a value');
});

router.get('/:vendor?', function(req, res, next) {

var vendorName = req.params.vendor;

Statement.find({name:req.params.vendor}, function(err, doc){
   if (err) {
       console.error('error no entries found');
   }
    console.log(doc);
    res.render('vendor', {
        vendor: vendorName,
        shop:doc
    });
});

});

module.exports = router;
供应商把手模板没有呈现任何内容,但我猜这是因为
doc
的值为空

编辑:在评论中对请求进行简单的查询

如果我将以下内容添加到路线中

var db = Statement.find();
console.log(db);
我在控制台中得到一个大对象(它确实引用了我的集合)


您是否检查了供应商要求参数的值?@chridam谢谢。是的,
req.params.vendor
的值正确通过,我可以在mongo shell中的查询中使用该值并获得结果。我尝试在find语句中硬编码该值,即
语句。find({name:“CASH HSBC”},function(err,doc){…})
?@chridam Yes,补充说,正如你所说的,没有变化你的猫鼬连接好吗?您的其他查询是否有效?您可以编写一些简单的查询来在route.js中测试它。你能检查一下吗?
Query {
_mongooseOptions: {},
 mongooseCollection:
   NativeCollection {
 collection: Collection { s: [Object] },
 opts: { bufferCommands: true, capped: false },
 name: 'statements',
 collectionName: 'statements',
 conn:
  NativeConnection {
    base: [Object],
    collections: [Object],
    models: [Object],
    config: [Object],
    replica: false,
    hosts: null,
    host: 'localhost',
    port: 27017,
    user: undefined,
    pass: undefined,
    name: 'finance',
    options: [Object],
    otherDbs: [],
    _readyState: 1,
    _closeCalled: false,
    _hasOpened: true,
    _listening: false,
    db: [Object] },
 queue: [],
 buffer: false,
 emitter:
  EventEmitter {
    domain: null,
    _events: {},
    _eventsCount: 0,
    _maxListeners: undefined } },
  model:
   { [Function: model]
 hooks: Kareem { _pres: {}, _posts: {} },
 base:
  Mongoose {
    connections: [Object],
    plugins: [],
    models: [Object],
    modelSchemas: [Object],
    options: [Object] },
 modelName: 'Statement',
 model: [Function: model],
 db:
  NativeConnection {
    base: [Object],
    collections: [Object],
    models: [Object],
    config: [Object],
    replica: false,
    hosts: null,
    host: 'localhost',
    port: 27017,
    user: undefined,
    pass: undefined,
    name: 'finance',
    options: [Object],
    otherDbs: [],
    _readyState: 1,
    _closeCalled: false,
    _hasOpened: true,
    _listening: false,
    db: [Object] },
 discriminators: undefined,
 schema:
  Schema {
    obj: [Object],
    paths: [Object],
    subpaths: {},
    virtuals: [Object],
    singleNestedPaths: {},
    nested: {},
    inherits: {},
    callQueue: [Object],
    _indexes: [],
    methods: {},
    statics: {},
    tree: [Object],
    query: {},
    childSchemas: [],
    s: [Object],
    options: [Object],
    '$globalPluginsApplied': true },
 collection:
  NativeCollection {
    collection: [Object],
    opts: [Object],
    name: 'statements',
    collectionName: 'statements',
    conn: [Object],
    queue: [],
    buffer: false,
    emitter: [Object] },
 Query: { [Function] base: [Object] },
 '$__insertMany': [Function],
 insertMany: [Function] },
  schema:
   Schema {
     obj: { date: [Object], name: [Object], amount: [Object] },
 paths:
  { date: [Object],
    name: [Object],
    amount: [Object],
    _id: [Object],
    __v: [Object] },
 subpaths: {},
 virtuals: { id: [Object] },
 singleNestedPaths: {},
 nested: {},
 inherits: {},
 callQueue: [ [Object], [Object], [Object], [Object] ],
 _indexes: [],
 methods: {},
 statics: {},
 tree:
  { date: [Object],
    name: [Object],
    amount: [Object],
    _id: [Object],
    id: [Object],
    __v: [Function: Number] },
 query: {},
 childSchemas: [],
 s: { hooks: [Object], kareemHooks: [Object] },
 options:
  { retainKeyOrder: false,
    typeKey: 'type',
    id: true,
    noVirtualId: false,
    _id: true,
    noId: false,
    validateBeforeSave: true,
    read: null,
    shardKey: null,
    autoIndex: null,
    minimize: true,
    discriminatorKey: '__t',
    versionKey: '__v',
    capped: false,
    bufferCommands: true,
    strict: true,
    pluralization: true },
 '$globalPluginsApplied': true },
  op: 'find',
  options: { retainKeyOrder: false },
  _conditions: {},
  _fields: undefined,
  _update: undefined,
  _path: undefined,
  _distinct: undefined,
  _collection:
   NodeCollection {
 collection:
  NativeCollection {
    collection: [Object],
    opts: [Object],
    name: 'statements',
    collectionName: 'statements',
    conn: [Object],
    queue: [],
    buffer: false,
    emitter: [Object] },
 collectionName: 'statements' },
  _traceFunction: undefined,
  _castError: null,
  _count: [Function],
  _execUpdate: [Function],
  _find: [Function],
  _findOne: [Function],
  _findOneAndRemove: [Function],
  _findOneAndUpdate: [Function],
  _replaceOne: [Function],
  _updateMany: [Function],
  _updateOne: [Function] }