javascript中的键值对

Shu*_*pta 2 javascript mongodb node.js

在 MongoDb 中应用过滤器

我需要在嵌入文档中的 mongoDb 中应用过滤器,所以我如何进行查询

例子:

var query = {
_id:userId,
'match.Id':matchId,
'match.userId':userId1
}
Run Code Online (Sandbox Code Playgroud)

现在我想应用过滤器让我们假设

案例 1:我的查询应该是这样的

 var query = {
    _id:userId,
    'match.Id':matchId,

    }
Run Code Online (Sandbox Code Playgroud)

案例2:

 var query = {
    _id:userId,
    'match.userId':userId1
    }
Run Code Online (Sandbox Code Playgroud)

可能有很多这样的情况

所以我的问题是如何在 node.js/javascript 中创建这个查询对象

我的工作:我可以在一个对象中创建多个键,但创建如下键不起作用

var query={}
query._id:userId // works
query.'match.userId':matchId // error
query.match.userId:matchId //error
Run Code Online (Sandbox Code Playgroud)

尝试下面的代码得到了所需的输出,但它带有方括号,但 arr 的类型是对象

var arr = [];
arr[ 'key3.abc' ] = "value3";
arr[ 'key2.abc' ] = "value3";
console.log(arr)//[ 'key3.abc': 'value3', 'key2.abc': 'value3' ]
Run Code Online (Sandbox Code Playgroud)

所需的输出:

{'key3.abc': 'value3', 'key2.abc': 'value3'}
Run Code Online (Sandbox Code Playgroud)

Saj*_*han 5

更改[]{}

 var obj = {}; 
 obj[ 'key3.abc' ] = "value3";       
 obj[ 'key2.abc' ] = "value3"; 

 console.log(obj) // { 'key3.abc': 'value3', 'key2.abc': 'value3'}
Run Code Online (Sandbox Code Playgroud)

注意,[]当键包含special character空格、点等时,我们可以通过方格 ( ) 符号分配或访问 JavaScript 对象。

  • 任何不符合有效标识符标准的属性名称都需要方括号。例如,属性名称可以包含数字,但如果它以数字开头,则必须使用点符号。`foo.d2` 没问题,`foo.2d` 必须是 `foo['2d']`。 (2认同)