2012-04-27 73 views
1

我試圖通過Mongoose連接到Node.js中的MongoDB。所有示例都會先討論如何在嘗試保存和查找文檔之前設計文檔的模式。但是,我已經在MongoDB中使用java(Morphia)定義了很多模式的模式。有什麼辦法可以利用MongoDB中已有(隱式)現有的MongoDB模式? I.e:我可以想象元數據存儲在MongoDB中關於正在創建的文檔類型,Mongoose可以使用它來創建它自己的客戶端模式。使用mongoose(node.js)連接到MongoDB,而模式已經定義(使用Java)

謝謝。

+0

嗯從頭這個問題,貓鼬似乎只是與查詢的架構沒有定義的字段罰款。 – 2012-04-27 14:40:49

回答

1

我能想象的元數據被存儲在MongoDB中關於正在創建的文檔類型,這可能是貓鼬被用來創建它自己的客戶端架構的。

MongoDB完全沒有關於集合內部的元數據。沒有「字段映射」或常見類型。索引甚至沒有統計數字,最後我查了一下。

有沒有什麼辦法可以利用MongoDB中MongoDB中已有(隱式)現有的模式?

我能想到的將是一個綱領性的轉換最好的。 即:讀取java源文件並寫出JS版本

或者你可以簡單地根本不定義模式。你仍然會找回完美有用的JS對象。

0

以上的答案是正確的,這裏有一段代碼爲我工作:

mongoose.model('Cat', new mongoose.Schema({ CatId: String })); // my schema is known to have cat id (I might not need this actually) 

var mondb = mongoose.createConnection('localhost', 'kitten'); // connect to kitten db 
var c = mondb.model('Cat'); // get the cat model from mongoose connection 
c.find({name:"lior"}).exec(function(err,c) { // and now use it with different fields for queries 
    if (err) { 
    ... 
    } 
    else 
     ... 
    } 
);