使用带有变量的MongoDB Native Dot Notation

时间:2014-04-29 16:37:30

标签: node.js mongodb node-mongodb-native

我有以下命令:

collection.update(
   { "facebook_id": req.params.facebook_id }, 
   { "$push": { "circles.0.messages": message } }, function(err) {...});

工作正常。但我需要0作为变量。一旦我改为:

collection.update(
    {"facebook_id": req.params.facebook_id },
    { "$push": { "circles.j.messages": message } }, function(err) {...});

它不再起作用了。没有错误,但没有任何推动。 尝试像:

  collection.update(
      {"facebook_id':req.params.facebook_id }, 
      { "$push": { "circles."+j+"j.messages": message } }, function(err) {...});

也不会工作。

如何在Dot Notation中使用变量?

谢谢&最好, 马克

2 个答案:

答案 0 :(得分:0)

正如@mnemosyn所说:

collection.update(
    {"facebook_id": req.params.facebook_id, "circles.field" : value }, 
    { "$push": { "circles.$.messages": message } }, function(err) {...});

工作正常!

答案 1 :(得分:0)

我找到了您不太满意的答案,这是可以做到的: 硬编码在外壳中:

"objectName.nestedObjectname";

带有变量:

let myVar = "nestedObjectname"; 
[`objectName.${myVar}`];