为什么说nosql没有固定查询语言?
没必要纠结这个。
非要纠结的话,可以先考虑下面几个问题:
这句话是谁说的
sql是在关系数据库出现多久后出现的?(谁去制定标准)
什么是nosql?(什么是标准?)
redis和memcached算不算nosql?(如何最大程度兼容现有标准?)
redis和mongodb实现方式都不一样,怎么算?(方言怎么办?)
mysql的json模式算不算?(底层实现方式不同,如何根据此制定最佳标准?)
当然,如果是教科书说的的话,那么可以认为他说的是“NoSQL现在没有标准查询语言,但是以后可能会有”。
先说现在为什么没有
这里不存在为不为什么的问题,而是事实如此。
来看看SQL数据库,各大关系型数据库的语法只是接近,各自实现(方言)并不一样,谈论互相兼容基本谈不上
所以本来SQL数据库就不存在事实上的固定查询语言
然后来说说为什么接下去也不会有
这么多NoSQL厂商,存储结构,功能实现,背后原理都不尽相同,对于查询语句的设计固然也就不一样,没有统一的主观愿望。另外NoSQL的查询也都相对简单,学习成本也都并不高。
(当然了,可以说,json和restful在某种程度上是文档结构数据库比较常见和通用的一个事实标准,但这扯不上查询语句什么事)