使用MySQL,我可以在表格“照片”中搜索以查找匹配的标题,如下所示:
SELECT *
FROM photos
WHERE title LIKE '[string]%';
如果字段“title”被索引,这将相当有效地执行。我甚至可以在标题字段上设置一个FULLTEXT索引来执行子字符串匹配。
使用以下格式对NoSQL的照片表(如亚马逊的DynamoDB)执行类似搜索的好策略是什么?
{key} - > photo_id, {value} - > {photo_id = 2332532532235, title ='这是一个标题'}
我想一种方法是搜索每个条目的值的内容并返回匹配。但这似乎效率很低,特别是当数据集非常大时。
提前致谢。
答案 0 :(得分:1)
我可以给你一个Mongo shell示例。
来自MongoDB网站的基础教程:
j = { name : "mongo" };
t = { x : 3 };
db.things.save(j);
db.things.save(t);
所以你现在有一个叫做东西的集合,并且已经存储了两个文件。
假设您现在想要做相同的
SELECT * FROM things WHERE name like 'mon%'
在SQL中,这会返回“mongo”记录。
在Mongo Shell中,你可以这样做:
db.things.find({name:{$regex:'mon'}}).forEach(printjson);
这将返回“mongo”文档。
希望这有帮助。
Atish