现在随着NoSql的迅速发展 NoSql也已经不是只一种概念,像MongoDB、tokyo tyrant等,一些乱七八糟的对Nosql 的介绍我就不说了,应为他只取决于key-value 的存储方式,所以他的速度就快,但是我如果想进行条件查询怎么版呢?只要改变一些逻辑就可以了,废话不多说了,下面只谈我的思路,怎么安装我就不说了。
我测试用的是tokyo tyrant,我也是刚接触不久
比如我要存一条新闻 curl -X PUT http://127.0.0.1:1978/1 -d “{“Title”:”This is the title”,”Content”:”This is the content”,”CreateTime”:”2011-4-12″}”
内容是基于Json的数据格式,这条数据的key=1
现在我要找到这条数据的话只能是根据key 来查询,也就是
curl http://127.0.0.1:1978/1
让他只是添加查询也只是多了一个步骤:
就是拆分插入
这是第一条
curl -X PUT http://127.0.0.1:1978/2 -d “{“Title”:”This is the title”,”Content”:”This is the content”,”CreateTime”:”2011-4-12″}”
curl -X PUT http://127.0.0.1:1978/Title=This is the title -d “2”
curl -X PUT http://127.0.0.1:1978/Content=This is the content -d “2”
curl -X PUT http://127.0.0.1:1978/CreateTime=2011-4-12 -d “2”
这是第二条
curl -X PUT http://127.0.0.1:1978/3 -d “{“Title”:”This is the title2″,”Content”:”This is the content2″,”CreateTime”:”2011-4-12″}”
curl -X PUT http://127.0.0.1:1978/Title=This is the title2 -d “3”
curl -X PUT http://127.0.0.1:1978/Content=This is the content2 -d “3”
curl -X PUT http://127.0.0.1:1978/CreateTime=2011-4-12 -d “3”
这里估计大家都明白了吧,这无非就是将一条数据拆开后再储蓄
这样虽然数据量大了点你但查询的时候就可以用条件查询了
比如我想查询今天的数据 curl http://127.0.0.1:1978/CreateTime=2011-4-12
这样满足这个条件的就会是 2和3 这样就可以再根据这两个value 查询相应的key
当然,也支持与或的多条件查询,分别请求
curl http://127.0.0.1:1978/CreateTime=2011-4-12 这是今天的
curl http://127.0.0.1:1978/Title=This is the title2 标题要等于This is the title2
现在是两个条件匹配重复次数为2的 一条的结果是2和3 另一条的结果是3,这样3重复了两次,结果就是3了
或的查询
curl http://127.0.0.1:1978/Title=This is the title
curl http://127.0.0.1:1978/Title=This is the title2
我要查询标题为这两个的 然后把查询出来的value合并就可以去找结果了
当然可以根据这样的思路你可以去写个与或合并的条件查询,这里由于时间关系我就不多说了
还有就是说字段重复的问题,比如我这边的一条数据有个字段是Title 那边一跳数据格式不一样但也有个字段是Title 这样不就冲突了吗?这个问题你可以用表的概念
比如一个是新闻的Title 你就写 News_Title=This is the title
另一个是产品的Title 你可以写 Products_Title=This is the product title
这样就不不会混淆了,思路来自于关系型数据库,仅供大家拍砖。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
作者
相关推荐
-
创建NoSQL数据建模符号 企业架构师亲自上阵
新兴的NoSQL数据风格促使创新的应用程序快速发展,但NoSQL同时也带来了挑战。NoSQL系统能够快速投入生产,有时甚至根本不用创建任何的前期模式。
-
深入理解Amazon DynamoDB NoSQL云数据库服务
Amazon DynamoDB NoSQL云数据库即服务主要为跨移动设备、网页web端、游戏、数字营销和物联网领域的应用提供支持。
-
SQL和NoSQL数据库设计之争
企业收集了很多大规模增长的松散结构化数据,Hadoop,Spark以及其他新技术处理这些数据非常有助于改善商业智能分析效率。
-
深入解读Hadoop十周年——展望篇
本文以技术篇、产业篇、应用篇、展望篇四部分带领大家深入解读Hadoop的昨天、今天和明天,一起憧憬下一个十年。