簡體   English   中英

使用MEAN堆棧從Mongo返回集合

[英]Return collections from Mongo using a MEAN stack

我目前正在做一個小組項目。 我們正在使用MEAN堆棧創建一個簡單的Web應用程序,但是在從mongo數據庫返回數據時遇到了一些問題。

我們試圖返回存儲在mongo db(位於mongolab中)中的集合中的所有文檔,但是在檢索數據時遇到了問題。

我們在節點服務器中使用以下Mongoose代碼創建架構:

var challengeSchema = mongoose.Schema({
name: String,
description: String,
difficulty: Number,
numberOfTimesCompleted: Number,
comments: [{user: String, body: String, date: Date }]
});

var Challenge = mongoose.model('Challenge', challengeSchema);

使用此模式,一個名為“挑戰”的集合被添加到數據庫中。

盡管在添加文檔到集合中沒有任何困難,但是當我們嘗試從該集合返回所有文檔時,沒有任何返回(超時)。

這是我們當前用於查詢數據庫的代碼:

exports.getChallenges = function (req, res){

    var challengeList = {};

    Challenge.find(function (err, Challenge) {
        if (err)
        challengeList = Challenge;
        console.log(Challenge);
        res.send(challengeList);
    });    
};

我們認為該問題與以下事實有關:集合稱為“挑戰”,而我們的模型稱為“挑戰”。 在玩了一段時間的代碼后,我們無法取得太大的進步。

任何想法,我們可能做錯了什么? 我們所有人都是mongo和node的新手,覺得我們很可能會犯一個簡單的錯誤。 非常感謝!

通過閱讀Mongoose文檔,看起來mongo集合名稱將從模型名稱中得出,除非您將其作為mongoose.model方法的第三個參數提供。

因此,在您的示例中,您可以嘗試:

var Challenge = mongoose.model('Challenge', challengeSchema, 'challenges');

該貓鼬方法的文檔在這里: http : //mongoosejs.com/docs/api.html#index_Mongoose-model

此外,您似乎沒有為mongoose.find方法提供任何條件。 這是該API的文檔: http : //mongoosejs.com/docs/api.html#model_Model.find 因此,您需要類似:

Challenge.find({find_my_criteria:'here'},function (err, challenges) {
    res.send(challenges);
});

……顯然,您需要根據需要用req代替您的實際條件/標准。

暫無
暫無

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

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