当前位置:  开发笔记 > 数据库 > 正文

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

如何解决《是否可以针对noSQLDB构建复杂查询》经验,为你挑选了2个好方法。

我一直在研究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数据库?



1> nos..:

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

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



2> Jackson Mill..:

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

我经常使用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

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

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

推荐阅读
TXCWB_523
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有