【发布时间】:2016-10-13 07:35:57
【问题描述】:
我将 mongoDb 和 mongoose 与 nodejs (express) 一起使用,一切正常,除了这个功能:
router.get('/', function(req, res, next) {
promotions.find({active:"true"},function(err,promo){
if (err) throw err;
res.render('index',
{
promos: promo
});
});
});
它在促销中带回一个空数组,但我的数据库中确实有文档。
问题似乎在于“{active:”true“}”中的活跃字段。当我查找没有任何过滤器的文档时(使用“find({},...”),它可以正常工作。
当我在 mongo 中运行 db.promotions.find({active: "true"}) 时,它可以工作。
这是我的促销模式:
// grab the things we need
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
// create a schema
var promotionSchema = new Schema({
title: String,
subtitle: String,
url: String,
image: String,
active:
{
type: Boolean,
default: false
}
});
var Promotion = mongoose.model('Promotion', promotionSchema, 'promotions');
// make this available to our Node applications
module.exports = Promotion;
这是我在 mongodb 中得到的:
我尝试了所有可能的 {active:true} 格式({"active":"true"}、{"active":true} 等),但没有任何效果。
【问题讨论】:
-
我认为 db.Promotions.find() 只会返回空!检查一下!
标签: node.js mongodb express mongoose