如何查询对象数组数据

时间:2017-01-29 13:48:16

标签: javascript html json

我构建了一个应用程序,它将我的所有数据存储在MongoDB中,包含数千个条目。现在我想从HTML页面查询它。我已经能够通过单击按钮成功加载数据,但我不确定如何为它编写查询。在标准MySQL中,我可以从dbname做一些类似" SELECT *的内容,其中initials =" AA"和扇区=" ECHO" "这是数据库中的字段。我的对象中也有这些字段。我将如何编写查询以获得类似于上述MySQL语句的结果?

这是返回的对象数据数组的示例:

[{_id: {$oid: "58306ce77df6dc1268c87142"}, cjs: "ZV", comment: null, current: false, duration: 50,…},…]
[0 … 99]
0:{_id: {$oid: "58306ce77df6dc1268c87142"}, cjs: "ZV", comment: null, current: false, duration: 50,…}
_id:{$oid: "58306ce77df6dc1268c87142"}
cjs:"ZV"
comment:null
current:false
duration:50
duration_string:null
error:null
expires_at:"2021-10-04T00:41:34.000Z"
fde_id_final:"778152728"
fde_id_initial:"778134619"
function:"SAT.IN"
initials:"AA"
json_class:"SatTransaction"
name:"Al Albert"
ot:false
position:"RDR"
quality:null
satin:"2016-10-05T00:41:34.000Z"
satout:"2016-10-05T01:32:20.000Z"
sector:"ECHO"
shift_date:"2016-10-04T00:00:00.000Z"
shift_duration:508
shift_duration_string:null
shift_end:58
shift_start:990
trainee:false
1:{_id: {$oid: "58306ce77df6dc1268c87144"}, cjs: "FY", comment: null, current: false, duration: 51,…}

这是我的基本HTML,我使用按钮加载整个JSON文件:

<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script>


$(document).ready(function(){
    $("button").click(function(){
        $.getJSON("http://maccdx170131:4567/api/v1/sat", function(result){

        });
    });
});





</script>
</head>
<body>

<button>Get JSON data</button>

<div></div>

</body>
</html>

感谢您提供任何帮助或建议!!

2 个答案:

答案 0 :(得分:1)

我会创建一个可以处理查询的RESTful api。这些可以包含在标题中,也可以作为您网址末尾的查询参数:

api/v1/sat?dataItem1=12必须对查询进行编码(为了便于说明,此处不显示)

然后我会从您的服务器代码中执行mongoDB查询,并将其返回给客户端,如此处的其他答案所示。

答案 1 :(得分:0)

要在服务器上执行查询,您可以使用MongoDB's $and query selector

collection.find({
  $and: [
    {'initials': 'AA'},
    {'sector': 'ECHO'}
  ]
})

如果查询是动态的,显然你必须传递AJAX请求中的参数。