Node.js 猫鼬-结果为空,但在猫鼬壳中效果良好
在我的应用程序中,从mongoose查询中获取结果时遇到问题。通过mongo shell我可以运行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
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] }