【发布时间】:2016-12-15 23:40:23
【问题描述】:
我正在尝试使用变量值作为列名来更新集合中的所有文档。我正在通过 robo mongo shell 命令尝试此操作。 代码如下:
doc=db.Symbols.findOne();
for (key in doc)
{
db.getCollection('Symbols').update(
{ key : null },
{
$set: { key: ""}
},
{ multi: true, upsert: false }
)
}
但这段代码似乎对我不起作用。似乎变量“key”中的值在运行时不会替换,而不是与变量 key robo mongo 中的值进行比较,而是将其与单词“key”本身进行比较。 知道怎么做吗?
【问题讨论】:
-
你检查了吗$rename
-
@yogesh- 我关心的不是更改列名,而是用空字符串更新所有包含 null 的列值。
-
这是一个javascript的东西,它将
key视为字符串文字。您需要像crtiera[key] = null一样在外面手动形成数组,然后使用它