【问题标题】:Numeric field names in meteor collection流星集合中的数字字段名称
【发布时间】:2014-02-02 05:02:50
【问题描述】:

我需要实现这样的集合结构:

{
    "_id" : "36JaTS8N9uJDHabaq",
    "pages" : {
        1 : {
            "field1" : "value1",
            "field2" : "value2"
        },
        ...
    }
}

一切都很好,当我执行以下操作时:

Collection.insert({
    "pages": {
        1: {
            "field1" : "value1",
            "field2" : "value2"
        }
    }
})

但是当我尝试使用包含数字而不是数字本身的变量时,例如:

var number = 1;
Collection.insert({
    "pages": {
        number: {
            "field1" : "value1",
            "field2" : "value2"
        }
    }
})

我没有收到我想要的结果(有一个变量名应该是数字):

{
    "_id" : "SjMotZHrtXviuoyqv",
    "pages" : {
        "number" : {
            "field1" : "value1",
            "field2" : "value2"
        }
    }
}

什么是做我想要实现的目标的正确方法?

提前致谢!

【问题讨论】:

    标签: javascript mongodb meteor


    【解决方案1】:

    你可以试试这样的:

    var doc={
        pages:{}
    };
    
    var number="1";
    doc.pages[number]={
        "field1":"value1",
        "field2":"value2"
    };
    
    Collection.insert(doc);
    

    【讨论】:

      【解决方案2】:

      您不能在 javascript 中将变量用作对象字面量中的键。见this答案。

      var number = 1;
      var pages = {};
      pages[number] = {f1: 'v1', f2: 'v2'};
      Collection.insert({pages: pages});
      

      【讨论】:

        猜你喜欢
        • 2014-06-20
        • 1970-01-01
        • 2016-09-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-07-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多