1

在 mongo 集合中,我有一个单词列表(数百万个单词)。

{word:'a'}
{word:'b'}
{word:'x'}
{word:'y'}
{word:'z'}

我需要获得一个单词的词汇相邻(下一个和上一个)。我正在寻找最有效的方法。

4

1 回答 1

2

为什么不简单地执行两个查询?

第一个将查找具有 'word > "YOURWORD"' 的文档,按 'word' (asc) 排序,限制为 1,然后第二个将查找具有 'word < "YOUTWORD"' 的文档,按 'word' 排序(desc),再次限制为 1。

我猜你在这个领域有一个索引,所以它应该是相当高效的。

这是一个代码示例:

var prev = db.words.find({"word": {$gt: "YOURWORD"}}).sort({"word": 1}).limit(1);
var next = db.words.find({"word": {$lt: "YOURWORD"}}).sort({"word": -1}).limit(1);
于 2013-03-30T17:09:57.327 回答