对NoSQL键值对执行上下文搜索的正确方法是什么



使用MySQL,我可能会在表"照片"中搜索匹配的标题,如下所示:

SELECT *
FROM photos
WHERE title LIKE '[string]%';

如果字段"title"被编入索引,这将非常有效。我甚至可以在title字段上设置一个FULLTEXT索引来执行子字符串匹配。

对NoSQL照片表(如亚马逊的DynamoDB)执行类似搜索的好策略是什么?格式为:

{key}->photo_id,{value}->{photo_id=2332532532235,title="这是一个标题"}

我想一种方法是搜索每个条目的值的内容并返回匹配项。但这似乎效率很低,尤其是当数据集变得很大时。

提前谢谢。

我可以给您举一个Mongo-shell的例子。

来自MongoDB网站上的基本教程:

j = { name : "mongo" };
t = { x : 3 };
db.things.save(j);
db.things.save(t);

因此,您现在有一个名为things的集合,并在其中存储了两个文档

假设你现在想做类似的事情

SELECT * FROM things WHERE name like 'mon%'

在SQL中,这会返回"mongo"记录。

在Mongo Shell中,您可以这样做:

db.things.find({name:{$regex:'mon'}}).forEach(printjson);

这将返回"mongo"文档。

希望这能有所帮助。

Atish

相关内容

最新更新