如何动态$set字段名从变量在Mongo脚本
How to Dynamically $set Field Name From Variable in Mongo Script
我正在编写一个脚本,将在MongoDB的shell中运行。我只使用纯Javascript,而不是node.js或Meteor。我有一个数组,其中分别包含字段名和字段值的键和值对。我正试图使用数组中的键值作为更新函数中的字段名。
var USER_ID = 1234567
var myArray = [
{ key : "name.first.nickname", value : "Sammy" }
]
for(var i = 0; i < myArray.length; i++){
setFields(myArray[i].key, myArray[i].value)
}
function setFields(key, value){
db.nameCollection.update(
{user : USER_ID},
{
$set: {
key : value
}
}
)
}
字段名总是设置为"key",而不是key变量的值"name.first.nickname"。有办法做到这一点吗?
function setFields(key, value){
var update = {$set:{}};
update.$set[key] = value;
db.Test.update(
{userId : userId},
update
);
}
var userId = "daniele";
var myArray = [
{ key : "dynamic_key_002", value : "Sammy" }
]
for(var i = 0; i < myArray.length; i++){
setFields(myArray[i].key, myArray[i].value)
}
另外,如果你需要进行大量的更新,也许你可以考虑批量更新,而不是逐个查询。
MongoDB为客户端提供了批量写操作的能力。大容量写操作影响单个集合。MongoDB允许应用程序确定批量写操作所需的可接受的确认级别。
https://docs.mongodb.com/manual/core/bulk-write-operations/相关文章:
- 访问脚本标记中的Angular变量
- 如何在渲染视图时将变量传递给Node.js中的脚本标记
- 如何从谷歌脚本中获取JS变量
- 如何将javascript变量传递给Ajax脚本
- 如何在脚本部分使用php部分代码中的变量
- 将变量从google脚本传递到html对话框
- 如何通过分配单个变量来减少此脚本中的链接数
- 如何在yahoo weather中将变量分配到javascript src脚本中
- 在同一页上的两个脚本中使用全局变量
- JavaScript 变量的作用域在此脚本中如何工作
- 我将如何在将数据发布到 php 脚本的 javascript 脚本中输入变量
- 将 Java 变量从 JSP 获取到脚本标记中
- 如何从 Chrome 扩展程序中的内容脚本中获取变量
- 在 ActionLink mvc3 Razor 中使用 java 脚本变量
- 带有全局变量、咖啡脚本和回调的模块 CSV
- 如何在此脚本代码中正确设置此计算和变量
- 如何在html中引用js脚本中的变量
- 跨站点脚本过滤器阻止了我使用python-cgi脚本将javascript变量保存到mysqldb的尝试
- 丢失了变量i脚本
- JQuery变量脚本