簡體   English   中英

Mongodb javascript查詢

[英]Mongodb javascript query

我正在使用javascript文件查詢mongo數據庫。 我有一個for循環,我使用myArray.push(value)添加到myArray。

我的問題是當我在Robomongo中運行腳本時,我得到2個輸出 - 數組的長度(我不想要)和print語句(我想要)。

反正有沒有阻止腳本輸出數組的長度 - 是否有我應該使用的另一個函數.push ???

這是一些腳本:

var myArray = [];
var result = jobData['result'];

for(var i = 0; i < result.length; i++){
    var collection = result[i].Tolerances;
    for(var j = 0; j < collection.length; j++){
        var cur = collection[j];
        myArray.push(cur);      // I do not want this value outputted
    }
}
for(var x = 0; x < myArray.length; x++){
    var value = myArray[x];
    print("Currency From: "+value.FromCurrency+";Currency To: "+value.ToCurrency+";Tolerance: "+value.TolerancePercentage+");
};

如果需要更多細節,請告訴我。

您可以使用JavaScript的reduce()map()方法構造新數組,而無需記錄新數組的長度。 以下示例演示了如何在您的情況下使用這兩種方法:

var jobData = {
    result: [
        { Tolerances: ["foo", "bar"] },
        { Tolerances: ["abc", "def"] },
        { Tolerances: ["123", "456"] }
    ]
};
var myArray = [];
var result = jobData['result'];  

var tolerances = result.map(function (r){
    return r.Tolerances;    
});

myArray = tolerances.reduce(function (a, b){
    return a.concat(b);
});

printjson(myArray);
// prints ["foo","bar","abc","def","123","456"]

查看下面的演示。

 var jobData = { result: [ { Tolerances: ["foo", "bar"] }, { Tolerances: ["abc", "def"] }, { Tolerances: ["123", "456"] } ] } var myArray = []; var result = jobData['result']; var tolerances = result.map(function (r){ return r.Tolerances; }) myArray = tolerances.reduce(function (a, b){ return a.concat(b); }) pre.innerHTML = "myArray: " + JSON.stringify(myArray, null, 4); 
 <pre id="pre"></pre> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM