1

mongo コレクションには、単語 (数百万語) のリストがあります。

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

単語の字句隣接語 (次と前) を取得する必要があります。最も効率的な方法を探しています。

4

1 に答える 1

2

単純に 2 つのクエリを実行してみませんか?

最初のものは、'word > "YOURWORD"' を含むドキュメントを探し、'word' (昇順) で制限 1 で並べ替えます。次に、2 つ目は、'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 に答える