2012-04-27 14 views
1

Mongooseを通じてNode.jsのMongoDBに接続しようとしています。すべての例では、ドキュメントを保存して検索する前に、まずドキュメントのスキーマを設計する方法について説明します。Mongoose(node.js)を使用してMongoose(node.js)に接続しています(Javaの場合)

しかし、すでにMongoDBでjava(Morphia)を使用してスキーマのロットを定義しました。すでに(暗黙的に)既存のスキーマをMongoDBのMongoDBに活用する方法はありますか?私は、Mongooseが作成するドキュメントの種類についてメタデータがMongoDBに格納されていると想像できます。これは、Mongooseが独自のクライアントサイドスキーマを作成するために使用できます。

ありがとうございました。

+0

うーんスクラッチその質問は、マングースは、スキーマで定義されていないフィールドを照会するとうまくのようです。 –

答えて

1

Mongooseが作成するドキュメントの種類について、MongoDBに保存されているメタデータを想像すると、Mongooseが独自のクライアントサイドスキーマを作成するために使用できます。

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 
     ... 
    } 
); 
関連する問題