当你在.insert
语句中的某些键:值对是可选的(因此你的键:值对一直在变化)而它在循环中被执行时,你如何解决问题(I&# 39;从表中读出数百行?)
因为我在集合中只有6个必填字段和6个可选字段,所以我不确定如何优雅地编码它,这样我就不必将空值插入到我的集合中。我有6个可选字段(大致如果我的数学是正确的)36个不同的组合,我必须处理if子句,不太实际。这是无模式MongoDB创建的两难选择(除非我想浪费空间并且在我的文档中有许多关键:值对具有空值)。
我尝试使用与key:value对连接的字符串作为参数。由于meteor期望.insert
结构,syntax error
命令({ key1:value1, key2:value2 }
)中不允许这样做。
我可以一次输入所有键:值对,然后点击6 $unset
再次从文档中删除这些字段,但这不是一个实际的解决方案(因为它会创建很多我/ O操作时,确实应该只有1个I / O操作。)
有什么建议吗?如何解决Meteor中可变键值对的问题?在此先感谢您的帮助!
答案 0 :(得分:1)
您的代码应该将对象创建为对象litteral。
var obj1 = {foo:"1", bar:"2"}
var obj2 = {foo:"3"} // no bar
然后你让Mongo插入对象
collection.insert(obj1);
collection.insert(obj2);
答案 1 :(得分:1)
insertedObject = {}
insertedObject[“price”] = itemPrice;
insertedObject[“name”] = itemName;
if (!! itemNote ) {
insertedObject["note"] = itemNote ;
}
Products.insert(insertedObject);
与您有可选参数等的出版物中的选择器/投影相同。