如何使用变量名在猫鼬中创建字段?我已经看到了一些使用.update()的方法,但是我想知道在创建新文档时是否存在一种方法
我的模式如下:
var summariesSchema = mongoose.Schema({
type: String,
name: String,
date: String
})
和我的对象:
var date = '2015-02-01'
var obj = {
ios: 100,
android: 500
}
var doc = {}
doc[date] = obj
var mongoDoc = new Summaries({
name: 'John',
type: 'person',
date: date,
$doc: doc
})
mongoDoc.save(function(err){
if(!err) log('done')
else log(err.toString())
})
但是它仅保存字段“名称”,“类型”和“日期”。
谁能告诉我是否可以做这样的事情,如果可以,我想念什么?
明白了.. @Alex的第一部分是正确的,只需将schema strict属性更改为false,以便可以向mongo文档中添加新字段。对于字段名称作为变量,我首先创建了整个对象,然后创建了文档的新实例:
var summariesSchema = mongoose.Schema({
type: String,
name: String,
date: String
}, { strict: false })
var date = '2015-02-01'
var obj = {
name: 'John',
type: 'person',
date: date
}
obj[date] = {
ios: 100,
android: 500
}
var mongoDoc = new Summaries(obj)
mongoDoc.save(function(err){
if(!err) log('Done.')
else log(err)
}
成功!
三年后,ES6语法也允许我们这样做:
var mongoDoc = await new Summaries({
name: 'John',
type: 'person',
date: date,
[date]: { ios: 100, android: 100 }
}).save();
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句