Javascript 使用动态键推送到mongodb阵列

Javascript 使用动态键推送到mongodb阵列,javascript,node.js,mongodb,express,Javascript,Node.js,Mongodb,Express,我试图通过动态键推送数据 数据库结构: { "obj1":{ "array":[ { "field1":"text1" }, { "field2":"text2" } ] }, "id":123; }, { "obj2":{ "array":[ { "field1":"text1" },

我试图通过动态键推送数据

数据库结构:

{
    "obj1":{
      "array":[
       {
        "field1":"text1"
       },
       {
        "field2":"text2"
       }
      ]
    },
    "id":123;
 },
 {
    "obj2":{
      "array":[
       {
        "field1":"text1"
       },
       {
        "field2":"text2"
       }
      ]
    },
    "id":1234;
 }
我正在尝试使用变量作为映射路径中的键:

var a = 'obj2';
db.collection('fooCollection').update({'id':1234},{$push:{a.array:{  "field3":"text3"}}});
如果我这样做:

db.collection('fooCollection').update({'id':1234},{$push:{"obj2.array":{ "field3":"text3"}}});

它可以工作,但我急需使用动态键。

这不能用对象文本来完成。试试这个:

var a = 'obj2';

var pushObj = {};
pushObj[a + '.array'] = { "field3": "text3" };

db.collection('fooCollection').update({ 'id':1234 }, { $push: pushObj });

你能整理一下你的例子吗?您的“工作”查询根本不是有效的查询(我猜是缺少了一些
和一个
,但我不确定).fixed,made in haste,sorry您需要以编程方式生成键;我认为您无法从文本中的字符串串联创建键。奇怪的是,我在5小时前尝试过创建键,然后决定在收到消息后重新检查。它可以正常工作-_-