我正在尝试通过 Mongoose 连接到 Node.js 中的 MongoDB。所有示例都讨论了在尝试保存和查找文档之前首先为文档设计架构。
但是,我已经使用 java (Morphia) 在 MongoDB 中定义了很多模式。有什么方法可以在 Mongoose 中利用 MongoDB 中已经(隐式)现有的模式?即:我可以想象存储在 MongoDB 中的关于正在创建的文档类型的元数据,Mongoose 可以使用这些元数据来创建它自己的客户端模式。
谢谢。
我可以想象元数据存储在 MongoDB 中,关于正在创建的文档类型,Mongoose 可以使用这些元数据来创建它自己的客户端模式。
MongoDB 绝对没有关于集合内内容的元数据。没有“字段映射”或常见类型。索引甚至没有我上次检查的统计数据。
有什么方法可以在 Mongoose 中利用 MongoDB 中已经(隐式)现有的模式?
我能想到的最好的方法是程序化转换。即:读取java源文件并写出一个JS版本。
或者您根本无法定义架构。你仍然会得到非常有用的 JS 对象。
上面的答案是正确的,这是一段对我有用的代码:
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
...
}
);