MongoDB:对文档中的嵌套元素进行更新并删除特定的嵌套对象

时间:2015-10-06 07:24:42

标签: javascript mongodb meteor

我需要删除文档中的一些嵌套数据,如下所示:

{
    "_id" : "123",
    "groupdata" : [
        {
            "title" : "group 1",
            "data" : [
                {
                    "description" : "row 1",
                    "many" : 2,
                    "other" : 0,
                    "fields" : 0
                },
                {
                    "description" : "row 2",
                    "many" : 2,
                    "other" : 0,
                    "fields" : 0
                }
            ]
        },
        {
            "title" : "group 2",
            "data" : [
                {
                    "description" : "row 1",
                    "many" : 2,
                    "other" : 0,
                    "fields" : 0
                },
                {
                    "description" : "row 2",
                    "many" : 2,
                    "other" : 0,
                    "fields" : 0
                }
            ]
        }
    ]
}

在前端,数据显示在表格中。 groupdata的每个数据集都是一个自己的表,每个data是表的一行。每个输入名称与mongodb文档中的字段名称相同。

为了保存更改,我在输入时使用了更改事件:

var inputs = $(that).closest('tr')[0].getElementsByTagName('input'),
    indexGroup = $(that).closest('.panel').index(),
    indexDosis = $(that).closest('tr').index(),
    id = 123;

for (var i = 0; i < inputs.length; i++) {
    field = $(inputs[i]).context.name;
    data[field] = $(inputs[i]).context.value;
}

setObject["groupdata."+ indexTable +".data"+ indexRow] = data;

Collection.update({ _id: id }, { $set: setObject }

我有一个问题和一个问题:

  1. 是否修复了对象的顺序,以便我可以使用index()执行此操作,或者我的更新方式有问题?如果这不是最佳方式,我需要改变什么?
  2. 我需要删除一行,但数据对象本身不具有唯一ID。那么如何删除特定的行(=数据对象)并删除同一个数组的其他对象呢?
  3. 所以在这个例子中我想删除第二个表的第一行。

0 个答案:

没有答案
相关问题