0

我有一个博客应用程序。我需要做一个MongoDB 查询(SQL很好,我会翻译它),以获得博客中的特定帖子,以及该帖子之前和之后的即时帖子。

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

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

如何编写查询以便获得其中一个 igBar直接的兄弟姐妹 Fooand Baz

出于性能原因,我想在不对数据库进行三个不同查询的情况下执行此操作。

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

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

1 回答 1

2

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

  • 将数据/帖子视为双向链接列表。
  • 您需要将参考 ID 存储为每个帖子文档(数组)中“上一个”和“下一个”帖子的链接。这使得插入稍微复杂一些,但在过去某处按日期插入“新”博客文章似乎不太可能。
  • 索引链接字段
  • 在链接字段中搜索具有主文档$ id 的文档
于 2013-01-27T17:55:56.490 回答