是否可以针对noSQL DB构建复杂查询

Tom*_*lle 13 nosql

我一直在研究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...
Run Code Online (Sandbox Code Playgroud)

注意:我知道我不能使用SQL,如上所述,我问的是如何使用上面的伪逻辑进行查询,换句话说,是一堆不同的条件.到目前为止,我发现最好的答案是你有一个RDBMS来查询,然后根据云中的密钥获取数据.这对我来说似乎不一定有效.

所以作为一个跟进.如果只是试图解决"搜索400万行"问题而不是"我们有数十亿行数据"问题,我是否应该费心去查看noSQL数据库?

nos*_*nos 9

mongodb,你会做类似的事情db.mytbl.find({"vara": { $gt: 10}, "varb": 2, "varc": {$lt: 100 }})

请参见此处,以及此处的示例


Jac*_*ler 5

这取决于您使用的数据存储.

我经常使用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
Run Code Online (Sandbox Code Playgroud)

此外,您可以执行诸如包含字符串列表的列以及选择列表中具有值的行的操作.

所以,官方答案是"也许,有时候,但不是真的,除非是的"