mongodbが2つのコレクションを結合してデータを取得するための「少し」のクエリを作成しました。MongoDBレスポンスを操作するNodeJS
ゲーム:-includeは0,1または2
0排他的 1包括 2復帰することができURL
に2つのまたは3のparamsを挿入し、すべての
-netcode:ありデータをフィルタリングするためのキー -group:最初のパラメータ "include"で動作する別のオプションのキー
- 私のクエリは完全に機能し、イベントが発生した回数を返しますグループ。
- 問題がありますか?私はmongo dbの結果を扱うことができません、私はJSONに解析する必要があります。 私はJSでそれほど巧妙ではないので、どこに置くべきかわかりません。私は法人で働いているので、コードのいくつかはすでに行われていました。
{
"events": [
{
"_id": {
"group": "GFS-CAJEROS-INFINITUM-TELDAT-M1",
"event": "SNMP DOWN"
},
"incidencias": 1
},
{
"_id": {
"group": "GFS-CAJEROS-MPLS",
"event": "Proactive Interface Input Utilisation"
},
"incidencias": 1209
},
{
"_id": {
"group": "GFS-CAJEROS-MPLS",
"event": "Proactive Interface Output Utilisation"
},
"incidencias": 1209
},
{
"_id": {
"group": "GFS-CAJEROS-MPLS",
"event": "Proactive Interface Availability"
},
"incidencias": 2199
},
{
"_id": {
"group": "GFS-SUCURSALES-HIBRIDAS",
"event": "Proactive Interface Output Utilisation"
},
"incidencias": 10
},
しかし、私は、それはこのように、JSON形式で融合させたい:
まあ、私の出力はこれですint型の値は、イベントの名前の横にあるチェック。
[
{
"group": "GFS-CAJEROS-MPLS",
"Proactive Interface Input Utilisation" : "1209",
"Proactive Interface Output Utilisation" : "1209",
"Proactive Interface Availability" : "2199",
},
{
"group": "GFS-SUCURSALES-HIBRIDAS",
"Proactive Interface Output Utilisation" : "10",
},
私はこの機能が正確にどのように動作するかを知らないので、私はこれを行うには良い方法がある¿、私は応答を管理する方法がわからない、NodejsとMongoDBのモジュールを使用していますか? jsonファイルを取得するのと同じように、別のjsを使用して生成しますか?
これは私が使用しているコードを、基本的に重要な部分です:
var events = db.collection('events');
events.aggregate([
{ $match : { netcode : data.params.netcode } },
{
$lookup:
{
from: "nodes",
localField: "name",
foreignField: "name",
as: "event_joined"
}
},
{ $unwind: {path: "$event_joined"} },
{ $match : {"event_joined.group" :
{$in:
[
groups[0] ,
groups[1] ,
groups[2] ,
groups[3] ,
groups[4] ,
groups[5] ,
groups[6] ,
groups[7] ,
groups[8] ,
groups[9] ,
]
}
}
},
{ $group : { _id : {group:"$event_joined.group", event:"$event"}, incidencias: { $sum: 1} } },
])
.toArray(function(err, result) {
if (err) {
console.log(err);
} else if (result) {
data.response.events = result;
} else {
console.log("No result");
}
ニースアプローチ( - : - – haim770