2014-05-25 69 views
0

我試圖使用MongoDB的$ JavaScript數組中使用MongoDB中操作JavaScript數組

它總是用單引號//「‘室內’,‘室外’,‘兩者’」

其包裝我需要它的工作或這樣的 - > 「室內」, 「室外」, 「兩者」

url_parts.query.Venue ='Indoor,Outdoor,Both' 

    var query={}; 

    if(url_parts.query.Venue!= undefined){ 

     var myarr = url_parts.query.Venue.split(","); 

     var string=''; 
     for (var i = 0; i < myarr.length; i++) { 

      string+="\""+myarr[i]+"\","; 
     }; 

     string = string.substring(0, string.length - 1) 

     query.venues = { $in:[string]}; 
    } 

    attraction.find(query).lean().exec(function(err, attrs) {.... 
+0

剛剛傳遞'myarr'作爲$ in的參數有什麼問題? '$ in:myarray'將作爲參數有效。或者你的初始分裂有什麼問題? –

+0

我試過它返回場地:{'$ in':[[Object]]} – Crimeira

+0

也許編輯你的問題,以顯示在執行任何操作之前'url_parts.query.Venue'的實際外觀。 –

回答

1

正如我所說$in需要一個數組:

var url_parts.query.Venue ='Indoor,Outdoor,Both'; 
var query = {}; 

query.venues = url_parts.query.Venue.split(","); 

因此,現在查詢看起來像這樣:

{ "venues" : { "$in" : [ "Indoor", "Outdoor", "Both" ] } } 
+0

好的,你是對的,我只需要刪除方括號,它的工作原理。你真是太棒了!!!!!! – Crimeira

+0

@Crimeira沒問題。你可以隨時接受答案:) –