Я использую MongoDB и мангуста с nodejs (экспресс) и все работает отлично, за исключением этой функции:Mongoose найти по полю?
router.get('/', function(req, res, next) {
promotions.find({active:"true"},function(err,promo){
if (err) throw err;
res.render('index',
{
promos: promo
});
});
});
Это возвращает пустой массив в промо, но у меня есть документы в моем db.
Проблема, похоже, связана с активным полем "{active:" true "}". Когда я ищу документы без фильтра (с помощью «find ({}, ...»), он отлично работает.
Когда я запускаю db.promotions.find ({active: "true"}) в mongo, он работает .
Это мое продвижение схемы:
// 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() просто вернется пустым! Проверь это! –