处理流星集合中可变的键值对(无模式困境)
Handling changeable key value pairs in meteor collections (schemaless dilemma)
如何解决问题,当一些键:值对在您的.insert
语句是可选的(因此您的键:值对改变所有的时间),而它正在循环内执行(我从表中读取数百行)?
由于我在集合中只有6个必选字段和6个可选字段,我不确定如何才能优雅地编码它,以便我不必将空值插入到集合中。有6个可选字段,我有(如果我的数学是正确的)36种不同的组合,我必须在if子句中处理,不是很实用。这是无模式MongoDB创建的一个困境(除非我想浪费空间并在我的文档中具有许多空值的键:值对)。
我已经尝试使用与键:值对连接的字符串作为参数。这在.insert
命令(syntax error
)中是不允许的,因为meteor期望{ key1:value1, key2:value2 }
结构。
我可以一次输入所有的key:value对,然后触发多达6个$unset
从文档中再次删除这些字段,但这并不是一个实际的解决方案(因为它将创建大量的I/O操作,而实际上应该只有1个I/O操作)。
有什么建议吗?如何解决流星中可变键值对的问题?提前感谢您的帮助!
insertedObject = {}
insertedObject[“price”] = itemPrice;
insertedObject[“name”] = itemName;
if (!! itemNote ) {
insertedObject["note"] = itemNote ;
}
Products.insert(insertedObject);
与出版物中的选择器/投影相同,其中有可选参数等
您的代码应该将对象创建为object literal。
var obj1 = {foo:"1", bar:"2"}
var obj2 = {foo:"3"} // no bar
然后你让Mongo插入对象
collection.insert(obj1);
collection.insert(obj2);
相关文章:
- Javascript,访问一个主要对象模块模式中的每个对象
- 是否有任何snippet或jQuery插件可以列出easylist.txt模式匹配的DOM中的所有元素
- 试图在引导模式内动态生成图表,得到offsetWidth错误
- 同位素库错误:未捕获错误无布局模式包装生产线8
- 在DOM中查找一个模式并替换它's的内容使用jquery
- 如何缩短MongoDB ObjectId并在Mongoose模式中使用它
- D3.js模式不适用于弧形或圆环图
- Webdriver.io pageObject模式-通过传递参数来定义元素选择器
- 模块模式和这个
- 带有let的JS/EECMAScript6私有字段的模式
- 我是否可以检测到javascript正在被卸载(作为调试模式)
- 执行动态模式弹出
- 注意:wp_enqueue_script调用不正确.在 Wordpress 调试模式下
- AngularJS ui路由器html5模式中断路由
- 包含圆括号的JavaScript Regex模式
- 显示模块模式在Knockout中设置模型的新实例
- Node.js使用Series函数(模式?)实现流控制时出现意外结果
- 使用模式格式化Number类型输入中的值
- 处理流星集合中可变的键值对(无模式困境)
- 弹出/模式困境