我一直在研究noSQL DB并且无法为自己满意地回答这个问题:是否有可能针对noSQL DB构建复杂的查询?
我想知道的查询类型是这样的:
select * from DB where vara > x AND varb = 2 AND varc < x AND vard in (x,y,z) AND vare like '%texthere%' AND varf = 2 AND varg = 3 and etc...
注意:我知道我不能使用SQL,如上所述,我问的是如何使用上面的伪逻辑进行查询,换句话说,是一堆不同的条件.到目前为止,我发现最好的答案是你有一个RDBMS来查询,然后根据云中的密钥获取数据.这对我来说似乎不一定有效.
所以作为一个跟进.如果只是试图解决"搜索400万行"问题而不是"我们有数十亿行数据"问题,我是否应该费心去查看noSQL数据库?
在mongodb,你会做类似的事情db.mytbl.find({"vara": { $gt: 10}, "varb": 2, "varc": {$lt: 100 }})
请参见此处,以及此处的示例
这取决于您使用的数据存储.
我经常使用AppEngine,他们的数据存储只允许一列上的不等式(并且该列必须是排序顺序中的第一个元素.因此,您将无法运行您发布的查询,但您可以执行类似的操作:
select * from DB where vara > x AND varb = 2 AND varc in (t,u,v,w) vard in (x,y,z) AND varf = 2 AND varg = 3
此外,您可以执行诸如包含字符串列表的列以及选择列表中具有值的行的操作.
所以,官方答案是"也许,有时候,但不是真的,除非是的"