2014-02-26 28 views
0

我想查找帶有最新「sorting_index」字段的文檔。 我試試這樣:在mongoose mongdb中使用排序()的同步findOne

var sorting_index = -1; 
this.findOne().sort({'sorting_index': -1}).exec(function(err, doc) { 
    if (err) return; 
    sorting_index = doc['sorting_index']; // sorting_index == 10  
});       
console.log(sorting_index); // sorting_index == -1 

問題是回調是異步的。如何同步做到這一點?

回答

7

簡答 - 你不能。

如果你想要你的代碼是同步的,你應該考慮使用其他工具而不是node.js

所有的I/node.js中O操作是異步的,所以如果你想用Node.js的工作,那麼你應該學會如何處理異步代碼:

this.findOne().sort({sorting_index: -1}).exec(function(err, doc) { 
    if (err) throw err; 
    var sorting_index = doc['sorting_index']; 
    console.log(sorting_index); // sorting_index == 10 
}); 

還有很多有助於簡化異步代碼的工具:async.js,promise,ES6生成器(node.js 11.x)等。

相關問題