2012-10-21 40 views
0

嘗試使用node.js框架geddy(在windows上),我遇到了一些問題。用geddy查詢mongodb

我想查詢的MongoDB,在我的控制器使用。首先()方法,從我的用戶模型像這樣:

geddy.model.User.first({name: 'jdoe'}, function (err, data) { 
    if (err) { 
    throw err; 
    } else { 
    console.log(data); 
    } 

}); 

奇怪的是我沒有得到任何輸出,錯誤,沒有什麼。用戶jdoe存在於集合中,所以它應該輸出一些東西,對吧?難道我做錯了什麼 ?

var User = function() { 

    this.defineProperties({ 
     username: {type: 'string', required: true}, 
     password: {type: 'string', required: true}, 
    }); 

    this.autoIncrementId = true; 

}; 

User = geddy.model.register('User', User); 

默認適配器設置在development.js到蒙戈,當我第一次創建我的數據庫運行geddy它已正確地插入了用戶收集:如

我的模型定義。

有什麼想法在這裏出了什麼問題?

UPDATE:

添加development.js的要求

var config = { 
    detailedErrors: true 
, debug: true 
, hostname: null 
, port: 4000 
, model: { 
    defaultAdapter: 'mongo', 
    } 
,db: { 
    mongo: { 
     dbname: 'knowledgebase' 
    } 
} 
, sessions: { 
    store: 'memory' 
    , key: 'sid' 
    , expiry: 14 * 24 * 60 * 60 
    } 
}; 

module.exports = config; 

也是我對蒙戈(由geddy創建)

> show collections 
User 
system.indexes 
users 

注意到,不知怎的,geddy是創建兩個集合,而不是收藏一個

+0

我可以看看你的配置文件嗎?如果沒有它,我將無法知道這裏發生了什麼:) – Techwraith

+0

另外,你可以告訴我你的數據庫中的收藏列表嗎? – Techwraith

+0

用config和mongo集合編輯我的帖子。昨天,.all()/。first()命令不會成功查詢mongo,現在他們可以做到。奇怪!它會與創建「重複」集合有關嗎? – mfreitas

回答

1

它看起來像你被這個bug擊中:https://github.com/mde/geddy/issues/240

事實上,Geddy無意中爲每個模型創建了兩個集合。它總是使用小型多元化集合來讀/寫。你確定你的數據是在該集合中,而不是在其他數據?

無論如何,從評論,這聽起來像你已經得到了這一個覆蓋。

+0

是的似乎是相同的錯誤,應該之前檢查過github,謝謝!無論如何,是的,我的數據總是以最小化的多元化收集爲結果,另一個數據對於我創建的每個模型都是空的。希望他們很快解決這個問題,很高興知道它已經發布。謝謝您的幫助 – mfreitas