【发布时间】:2013-01-28 01:55:56
【问题描述】:
我有一个博客应用程序。我需要进行 MongoDB 查询(SQL 很好,我会翻译它),以获取博客中的特定帖子,以及之前和之后的即时帖子那个帖子。
例如,给定这个帖子列表:
12/01/13 - Foo
15/01/13 - Bar
17/01/13 - Baz
27/01/13 - Taz
如何编写查询以获得其中之一,例如Bar、和直系兄弟 Foo 和Baz?
出于性能原因,我希望这样做不对数据库进行三个不同的查询。
在我的应用程序中,我获取了一个这样的帖子:
model.findOne({
date: {
$gte: new Date(2013, 0, 15),
$lt: new Date(2013, 0, 15, 24)
},
slug: 'Bar'
}, function(result){
return { entry: result };
});
【问题讨论】:
-
鉴于您的搜索条件不是特定文档(而是日期范围),这不适合单个 MongoDB 请求。即使在 RDBMS 中,这也可能需要一个偷偷摸摸的子查询。 :) 为什么 3 个查询有问题?
-
如何找到初始项?按 ID、日期或其他标准?
-
@Ian 实际上有两种方式,按 Id 或按 Date + Slug
标签: sql-server-2008 node.js mongodb