MongoDB查询相关记录

时间:2013-01-27 17:27:31

标签: sql-server-2008 node.js mongodb

我有一个博客应用程序。我需要制作 MongoDB查询(SQL ,我会翻译它),在博客中获取特定帖子,以及之前和之后发布的即时帖子那篇文章。

例如,给出这个帖子列表:

12/01/13 - Foo
15/01/13 - Bar
17/01/13 - Baz
27/01/13 - Taz

如何编写查询以便我获取其中一个,ig Bar和直接兄弟 FooBaz

出于性能原因,我想对数据库进行而不对数据库进行三次不同的查询

在我的应用程序中,我提取了一个这样的帖子:

model.findOne({
    date: {
        $gte: new Date(2013, 0, 15),
        $lt: new Date(2013, 0, 15, 24)
    },
    slug: 'Bar'
}, function(result){
    return { entry: result };
});

1 个答案:

答案 0 :(得分:2)

这是一种可能性(涉及2个查询,一个用于查找主要帖子,第二个用于查找最近的文档):

  • 将数据/帖子视为双向链接列表。
  • 您需要将参考ID存储为每个帖子文档(数组)中“上一个”和“下一个”帖子的链接。这使得插入变得更加复杂,但在过去的某个地方插入“新”博客帖子似乎不太可能。
  • 索引链接字段
  • 搜索具有主要文档$in链接字段
  • 的ID的文档