簡體   English   中英

mongodb查詢成javascript函數

[英]mongodb query into javascript function

我想做的是編寫一個JavaScript函數來訪問.js文件中的已定義articles架構。

我已經確定以下查詢可在mongodb終端中工作:

    db.articles.ensureIndex( { "comments.user_id" : 1 } )
        db.articles.find( { "comments.user_id" : 987654 } ) // returns all document fields, meaning X and Y including comments

        db.articles.find( { "comments.user_id" : 987654 }, 
{ "title" : 1, "comments.user_id" : 1 })   //some trimming

javascript函數的目的是檢索特定用戶的所有注釋,我的下面嘗試與上面的mongodb查詢相對應嗎? 樣式,語法是否被視為良好做法?

exports.allCommentsByUser = function(userId){ 
   db.articles.ensureIndex({"comments.user_id" : 1})
    var allComments = db.articles.find({"comments.user_id" : userId}, 
                  { "title" : 1, "comments.user_id" : 1 });
    return allComments;
}

問:此外,如何將上述javascript函數轉換為閉包函數?

注意:我使用mongoose作為包裝

那是行不通的,因為allComments是Mongoose Query對象,而不是結果。 您需要在allCommentsByUser方法中添加一個回調參數,異步find調用完成后,該方法將用於將結果提供回調用方。

exports.allCommentsByUser = function(userId, callback){ 
    db.articles.find(
        {"comments.user_id" : userId}, 
        { "title" : 1, "comments.user_id" : 1 }, 
        callback);
};

該方法的用法:

x.allCommentsByUser(userId, function (err, articles) {
    if (err) {
        console.error(err);
    } else {
        console.log(articles);
    }
});

不知道第二個問題是關於“關閉功能”的問題。

暫無
暫無

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

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