MongoDB学习领悟: 文档的书写是基于K-V的map演算形式

MongoDB学习领悟: 文档的书写是基于K-V的map演算形式

基于K-V的map演算形式

学习了python,发现有这个lambda原来是基于  入函数演算,函数的世界里都可以有这个演算。

那么学习MongoDB,就可以发现它是文档的世界,文档是K-V结构的存储模式。

类比一下,那么基于K-V的map演算是什么呢?

就是彻底的进行map的拆分直到不能再分的map单元。

首先要有如下的认识:

1.最小的存在单元是文档,例如描述到a=3  {a:3}

2.给我们表达的语义提供一套对应的 标识符.

   将运算和逻辑的标识符映射成对应的字符串,然后这些字符串可以充当key

3.演算就是不断的进行拆分,直到我们的最基本的map(叶子处为止)。


比如描述 a > 3
如果我们将中间的  > 也看成一个key,那么   {a:{>:3}}

我们将   >3看成一个整体  用v代替,

那么上述的式子可以演算为  a-v 其中v就是  >3,然后再次演算  >3

将>3再次看成一个k-v结构就是  >-3. 其中  >是key

语义描述完了。

也就是我们将语义看成是一排字符的话,那么最后的2个就是结束的叶子。

使用mongodb的JSON表示我们的K-V结构就是 {"K":V}

所以我们的  a>3就是 {"a":V}  ,其中  V={">":3}

写成一块就是  {"a":{">":3}}

但是这个">"这个语义的标识符不对,所有要提供一套对应的标识符。

比如这个">"就是 "$gt"

所以K-V演算就是  {"a":{"$gt":3}}


然而我们常见的语义无非就是:

主语表语 :例如用于条件等

动词宾语 补语 :例如用于更新操作等。 这个时候动词在前面,宾语在后面


主语当然就是我们的属性名了

表语中的关系符号有对应的标识符

动词也有,就是那一堆修改器了

宾语仍然是我们的属性名了

补语就是我们更新的最终值了


记住基本存在是文档

用上面的那个语义和K-V的演算我们很容易记住MONODB的查询和更新动作了。

 

比如把属性a的值改变为3  语义翻译成动兵就是  更改a的值为3

动词可以使用修改器  "$set"

{"$set":{"a":3}}


db.person.update(查询文档,{"$set":{"a":3}})


结论:

我们可以基于这个K-V结构去演算表达式,包括我们的函数。只要提供函数对应的键值就可以了。

给定一个表达式都可以基于K-V来进行演算。

但是要提供这个对应的标识符以及计算语义的标识符支持。

嘿嘿我觉的这个可以是一个研究方向。

用 K-V演算出复杂的表达式和关系。 

{K-{K-{K-{K.........{K-V}}....}}.




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值