【发布时间】:2015-03-02 09:20:32
【问题描述】:
在我的 Mongodb 数据库中,我有一组此类文档(Mongoose 描述):
{ colour: String, addedDate: {type: Date} }
例如,这里是一个数据样本:
{colour: 'white', addedDate: '2014-09-24T23:00:00.000Z'}
{colour: 'red', addedDate: '2014-09-24T23:00:00.000Z'}
{colour: 'white', addedDate: '2013-11-24T23:00:00.000Z'}
{colour: 'red', addedDate: '2012-09-24T23:00:00.000Z'}
{colour: 'white', addedDate: '2014-01-24T23:00:00.000Z'}
{colour: 'yellow', addedDate: '2014-09-24T23:00:00.000Z'},
我想获取某些颜色(在数组中指定)、具有最新 ' addedDate' 的文档并将结果存储在数组中。
这是我的代码:
var Colour = require('../app/models/colour');
var colours = ['white', 'red'];
var results = [];
for (var i = 0; i<colours.length; i++) {
var name = colours[i];
(function(output, colour_name) {
Colour.find({name: colour_name})
.sort('-addedDate').limit(1).exec(
function (err, obj) {
if (err) return console.log(err);
output.push(obj);
console.log('output LOG:' + output);
}
);
})(results, name);
}
// Now use the results array
console.log('OUTPUT:' results);
在“输出日志:”中,我得到了应有的数组输出(为简单起见,我没有在这里显示 _id):
output LOG: {colour: 'white', addedDate: '2014-09-24T23:00:00.000Z'}
output LOG: {colour: 'white', addedDate: '2014-09-24T23:00:00.000Z'}, {colour: 'red', addedDate: '2014-09-24T23:00:00.000Z'}
但是,最终的输出还是空的。
OUTPUT:
如何填写“结果”数组?事实上,我想将它传递给网页,所以我想在渲染页面之前提前收集这些颜色的所有结果。
【问题讨论】:
标签: javascript arrays node.js mongodb mongoose