使用 mongodb 术语,您的集合可能如下所示:
photos = [
{
_id: ObjectId(...),
title: "...",
date_uploaded: Date(...),
albums: [
ObjectId(...),
...
]
},
...
]
albums = [
{
_id: ObjectId(...),
title: "..."
}
]
查找 5 张最新照片的方法如下:
> var latest = db.photos.find({}).sort({date_uploaded:1}).limit(5);
mongo 中没有服务器端连接,因此您必须像这样获取所有最新专辑:
> var latest_albums = latest.find({}, {albums: 1});
当然,然后你必须把它归结为一个集合。
如果您只是将相册嵌入照片文档中,实际上会更容易,因为它们很小:
photos = [
{
_id: ObjectId(...),
title: "...",
date_uploaded: Date(...),
albums: [
{name: "family-vacation-2011", title: "My family vacation in 2010"},
...
]
},
...
]
那么查询也是一样的,但是不用加入。查找相册中的所有照片如下所示:
> db.photos.find({albums:{$elemMatch:{name: "family-vacation-2011"}}});