我有以下命令:
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中使用变量?
谢谢&最好, 马克
答案 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}`];