2012-04-27 78 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 
     ... 
    } 
);