Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Node.js+;猫鼬集域_Javascript_Node.js_Mongodb_Mongoose - Fatal编程技术网

Javascript Node.js+;猫鼬集域

Javascript Node.js+;猫鼬集域,javascript,node.js,mongodb,mongoose,Javascript,Node.js,Mongodb,Mongoose,我正在尝试更新模式中的几乎所有字段,除了_id和__v,以下是迄今为止的代码: for (var field in SchemaTarget.schema.paths) { if ((field !== '_id') && (field !== '__v')) { //all fields except _id and __v } } 现在,我如何设置例如:doc.field=something?我也看到了:doc[f

我正在尝试更新模式中的几乎所有字段,除了_id和__v,以下是迄今为止的代码:

for (var field in SchemaTarget.schema.paths) {
       if ((field !== '_id') && (field !== '__v')) {
            //all fields except _id and __v
       }
    }
现在,我如何设置例如:
doc.field=something?我也看到了:
doc[field]=something
,有什么区别

doc.field=something
它是访问对象属性的点表示法。“field”必须是有效的JavaScript标识符,即字母数字字符序列,还包括下划线(“_”)和美元符号($”),不能以数字开头。例如,object.$1有效,而object.1无效

doc[field] = something
它是访问对象属性的括号表示法。“field”是字符串。字符串不必是有效的标识符;它可以有任何值,例如“1foo”、“!bar!”,甚至是“”(空格)


要详细了解这些,请看一看。

javascript和Mongoose在使用属性或哈希访问器方面没有区别

Mongoose使用较新的“get”magic属性,详细描述如下:

如果查看代码,您可以看到:

谢谢你的解释。实际上,我还有一个问题,在我的代码中,我正在打印
doc.field.field2
doc['field.field2']
,它们有不同的值,这正常吗?两个字段的值不应该相同吗?在括号符号中,必须使用
doc['field']['field2']