MongoDB之mapReduce()蛋痛

  1. 直到发现 printjson()之前,调试起来麻烦。
  2. 写起来很诡异,因为MongoDB本来就是诡异的BSON(用内置的Javascript操作起来就是JSON)数据结构,然后大量的Javascript Array的forEach(), map()就昏了。
  3. 万幸的是MongoDB自带的SpiderMonkey还不支持Array.reduce(), yield()等各种蛋痛Javascript 1.8方法。
  4. mapReduce()代码维护起来麻烦,2周之后自己的代码可读性趋近于0了。郁闷。
  5. 用的是pymongo这个 MongoDB Python Driver。Javascript和Python混写很蛋痛。估计Node.js写起来爽一点吧。还有就是命名风格也很蛋痛,findOne() 和 find_one() 是同一个东西在不同地方的写法,但是$addToSet又是同一个写法。
  6. Javascript还是比较烂的一门语言。我觉得最大的问题就是函数不能可选命名参数调用,把Object当字典用但是key又不加引号,缺乏Object.keys()和 Object.update() 方法,key只能是固定格式的字符。

Comments