论野生技术&二次元

mongo好大一个坑

因为种种原因被逼着写mongo……

作为一个初学者,我发现了几个坑:

新的协议没文档

官网上只有Legacy Driver Implementation Documentation这个旧的协议文档,新的文档的链接是一个死循环,绕一圈可以回到原地(不信你试试)。可能有用的只有一个视频,还是2011年的,不想看了,哦草。这里还有一个2013年的,从stackoverflow看来的

当然官方给的各种语言的SDK里倒是一直在更新的。

但是给个文档会死啊!

虽然是在用lua写,所以本来也是作死。

但是给个文档会死啊!

因为lua-resty-mongol没有支持新协议,所以会有这么个问题

在update里使用$pull,lua-resty-mongol用getLastError取被修改的行数,永远是返回1(这特么谁设计的),没办法知道改成功了没有。只能update前后各find一次比较了哈哈哈哈哈哈。

设计太坑爹

除了之前的getLastError永远返回1以外,还有一个问题:

之前是2.4.x版本,升级到3.x之后,告诉我admin库需要升级,否则没法登陆,而且需要用2.6.x版本来升级

呵呵

还有一个问题:

现在我有这么个文档post,每个记录是这样的:

首先(只)取所有评论的话是没有问题的↓:

现在我想取出_id是5下的前15条评论

这么写↑,post_content也出来了,post_content好大的啊,不想取怎么办啊

这么写↑,_id没了,其他post_content还在

↑并没有什么卵用


↑这样_id有,其他键没了。

所以结果是_id必须留着……

没错我是强迫症,强迫症多着呢

 

从目前的我所遇到的情况来看,似乎mongodb能干的奇妙功能用SQL数据库一样能搞,无非要再配合别的靠谱的nosql数据库(比如redis这种)。至少写了代码还能预测能发生什么。像mongo这样写着写着给你个惊♂喜的实在受不了了。哦不过也有可能被虐着虐着就有感♂觉了呢(ง •̀_•́)ง

 

PS : 我是mongo初学者,欢迎大神来鞭挞我

 

退出移动版