我需要实现这样的收集结构:
{
"_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"
}
}
}
我正在努力实现的目标是什么?
提前致谢!
答案 0 :(得分:3)
您可以尝试这样的事情:
var doc={
pages:{}
};
var number="1";
doc.pages[number]={
"field1":"value1",
"field2":"value2"
};
Collection.insert(doc);
答案 1 :(得分:2)
您不能在javascript中将变量用作对象文字中的键。请参阅this回答。
var number = 1;
var pages = {};
pages[number] = {f1: 'v1', f2: 'v2'};
Collection.insert({pages: pages});