使用mongoose(node.js)连接到MongoDB,同时已定义模式(在Java中)

时间:2012-04-27 14:07:23

标签: mongodb mongoose

我正在尝试通过Mongoose连接到Node.js中的MongoDB。所有示例都讨论了在尝试保存和查找文档之前首先为文档设计模式。

但是,我已经使用java(Morphia)在MongoDB中定义了许多模式。有没有办法可以利用Mongoose中MongoDB中已经存在的(隐式)现有模式?即:我可以想象存储在MongoDB中的元数据有关正在创建的文档类型,Mongoose可以使用它来创建自己的客户端模式。

感谢。

2 个答案:

答案 0 :(得分:1)

  

我可以想象存储在MongoDB中的元数据有关正在创建的文档类型,Mongoose可以使用它来创建自己的客户端模式。

MongoDB绝对没有关于集合内部内容的元数据。没有“野外地图”或常见类型。我检查的索引甚至没有统计数据。

  

有没有办法可以利用Mongoose中MongoDB中已经存在的(隐式)现有模式?

我能想到的最好的是程序化转换。 即:读取java源文件并写出JS版本

或者你根本就不能定义架构。你仍然会得到完全有用的JS对象。

答案 1 :(得分: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
       ...
   }
);