3

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

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

如果字段“title”被索引,这将执行得相当有效。我什至可以在标题字段上设置一个 FULLTEXT 索引来执行子字符串匹配。

什么是对 NoSQL 照片表(如 Amazon 的 DynamoDB)执行类似搜索的好策略,格式如下:

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

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

提前致谢。

4

1 回答 1

1

我可以给你一个 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”文档。

希望这可以帮助。

阿蒂什

于 2012-01-20T23:10:03.577 回答