【发布时间】:2013-04-09 02:52:03
【问题描述】:
我提出了一个与此相关的问题,但我对 mongoose 的聚合框架有一个新的疑问。例如,我有这个架构:
var userschema = new mongoose.Schema({
user: String,
pass: String,
following: [String],
imagen: [{
title: String,
date: { type: Date, default: Date.now },
name: String,
author: String,
}],
});
这是聚合框架的代码:
app.get('/home', middleware.yeses, function (req, res){
usermodel.findOne({ user: req.session.user }, function (err, user){
model.aggregate([
{$match: { _id : '50f5c7265838530000000006' }},
{$unwind: '$imagen'},
{$sort: {'imagen.date': 1}}
], function (err, imagenes){
if (err) throw err;
console.log(imagenes);
res.send('foo');
});
});
});
我正在尝试在控制台中获取所有 images,例如像这样的 imagen 架构:
{ title: 'footitle',
name: 'foophoto.png',
date: Tue Jan 1 2013 22:32:12 GMT+0100 (CET),
author: 'foouser' }
并获取所有图像模式,按日期排序。
用户架构中的以下数组包含实际用户正在关注的用户_ids。因此,使用{$match: { _id : '50f5c7265838530000000006' }},,我只能获得我关注的用户的图像。问题是,当执行这段代码时,我收到了这个[],我得到的图像数组是空的,所以代码不起作用,因为我关注的用户有上传照片。
当我删除这个{$match: { _id : '50f5c7265838530000000006' }} 时,我得到了所有用户及其图像,但我不仅得到了图像架构,我还得到了整个用户架构。
所以,我想要的是获取我关注的用户的所有图像,按日期排序。有什么解决办法吗?
感谢提前!
【问题讨论】:
标签: node.js mongodb express mongoose