MongoDB中/流星:添加唯一ID到每一个数组元素 [英] MongoDB/Meteor: Add unique ID to every array element

查看:466
本文介绍了MongoDB中/流星:添加唯一ID到每一个数组元素的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我怎么能一个唯一的ID添加到这个结构的每个数组元素?元素的数量是可变的,所以我需要一个动态的解决方案。

  {
    _id:wLXDvjDvbsxzfxabR,
    组:
        {
            头衔:标题1
            数据:
                {
                    注:TEXT
                }
            ]
        },
        {
            头衔:标题2
            数据:
                {
                    注1:文本
                },
                {
                    注2:文本
                },
                {
                    注3:文本
                }
            ]
        }
    ]
}

的ID应被添加到所有组元素和所有数据元素。结果应该是这样的:

  {
    _id:wLXDvjDvbsxzfxabR,
    组:
        {
            ID:dfDFSfdsFDSfdsFws
            头衔:标题1
            数据:
                {
                    ID:efBDEWVvfdvsvsdvs
                    注:TEXT
                }
            ]
        },
        {
            ID:fdsfsFDSFdsfFdsFd
            头衔:标题2
            数据:
                {
                    ID:WVvfsvVFSDWVDSVsv
                    注1:文本
                },
                {
                    ID:qqdWSdksFVfSVSSCD
                    注2:文本
                },
                {
                    ID:MZgsdgtscdvdsRsds
                    注3:文本
                }
            ]
        }
    ]
}


解决方案

这应该在对象中迭代

 函数generateId(){
    //你必须写自己
}功能ADDID(OBJ){
    如果(Object.prototype.toString.call(OBJ).indexOf('阵')> = 0){
        obj.forEach(函数(项目){
            item.id = item.id || generateId();
            ADDID(项目);
        });
    }
    否则,如果(typeof运算OBJ =='对象'){
        Object.keys(OBJ).forEach(功能(键){
            ADDID(OBJ [关键]);
        });
    }
}

使用

  ADDID(yourObject);

How can I add a unique ID to every array element in this structure? The number of elements are variable, so I need a dynamic solution.

{
    "_id" : "wLXDvjDvbsxzfxabR",
    "group" : [
        {
            "title" : "title 1",
            "data" : [
                {
                    "note" : "text"
                }
            ]
        },
        {
            "title" : "title 2",
            "data" : [
                {
                    "note 1" : "text"
                },
                {
                    "note 2" : "text"
                },
                {
                    "note 3" : "text"
                }
            ]
        }
    ]
}

The ID should be added to all group-elements and all data element. The result should look like:

{
    "_id" : "wLXDvjDvbsxzfxabR",
    "group" : [
        {
            "id" : "dfDFSfdsFDSfdsFws",
            "title" : "title 1",
            "data" : [
                {
                    "id" : "efBDEWVvfdvsvsdvs",
                    "note" : "text"
                }
            ]
        },
        {
            "id" : "fdsfsFDSFdsfFdsFd",
            "title" : "title 2",
            "data" : [
                {
                    "id" : "WVvfsvVFSDWVDSVsv",
                    "note 1" : "text"
                },
                {
                    "id" : "qqdWSdksFVfSVSSCD",
                    "note 2" : "text"
                },
                {
                    "id" : "MZgsdgtscdvdsRsds",
                    "note 3" : "text"
                }
            ]
        }
    ]
}

解决方案

This should iterate through the object

function generateId() {
    // you'll have to write this yourself
}

function addId(obj) {
    if (Object.prototype.toString.call(obj).indexOf('Array') >= 0) {
        obj.forEach(function(item) {
            item.id = item.id || generateId();
            addId(item);
        });
    }
    else if (typeof obj == 'object') {
        Object.keys(obj).forEach(function(key) {
            addId(obj[key]);
        });
    }
}

usage

addId(yourObject);

这篇关于MongoDB中/流星:添加唯一ID到每一个数组元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆