2016-10-18 62 views
1

在javascript/Meteor中,我嘗試構建一個可定製的函數,以根據排序鍵返回Mongo Collection的最後一個文檔。JS - 將字符串傳遞給MongoDB查詢

,當我的排序字段(創建-AT)這項工作是硬編碼:

last_document = function(collection) 
       { 
       var query   = {sort: { "createdAt": -1}}    ; 
       var last_document = collection.find({}, query).fetch()[0]  ;       
       return last_document; 
       }; 

但是當我通過它的參數,它不:

dernier_document = function(collection, sort_by="createdAt") 
       { 
        var query    = {sort: { sort_by: -1}}      ; 
        var dernier_document = collection.find({}, query).fetch()[0]  ;       
        return dernier_document; 
       }; 

我使用流星1.4。 有什麼想法?

回答

1

你的問題並不是真的要將一個字符串傳遞給mongodb,而是將一個變量作爲一個Object鍵來轉換。

您可以用這種方法解決您的問題:

var query = {sort: {}}; 
query.sort[sort_by] = -1; 

var query = { sort: { [sort_by]:-1}}; 

enter image description here

+0

工作!將接受答案asap –

+0

@Steeve很好的答案,但它實際上不是JSON密鑰,因爲JSON是外部-JS格式。 –

+0

@KarolKlepacki我應該說:Object key? –

相關問題