MongoDB作为文档型数据库,可方便灵活存储文档,属性相同或相似的数据可采用不同的形式来记录。如有集合 users, 其中用户 July 与 Tom 电话字段记录方式不同,一个多字段形式,一个数组形式,希望按 NAME 分组,合并其下的 TEL。具体数据如下:
…… { "_id" : ObjectId("5fd305b4db8950e48f0cf196"), "username" : "July", "gender" : "F", "age" : 17, "TEL1" : "18811223298", "TEL2" : "18581418158", "TEL3" : "15286856439"} |
{
"_id" : ObjectId("5fd30828db8950e48f0cf197"), "username" : "Tom", "gender" : "M", "age" : 15, "TEL" : [ "13800226298", "18511418100", "13986666413" ]}…… |
用 MongoDB 脚本实现思路,可先获取集合的字段名,再根据字段名匹配获取对应的电话字段,再将电话字段数据合并,使用mapreduce遍历处理,实现过程比较烦琐。
使用集算器, 可先找到 TEL 相关的字段,再将其对应的值合并,实现比较容易。
我们将上述事例实现步骤: