首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mongoose.model对Connection.model对Model.model

Mongoose.model对Connection.model对Model.model
EN

Stack Overflow用户
提问于 2012-10-09 18:55:05
回答 3查看 13.7K关注 0票数 16

我对mongoosejs中模型的使用感到有点困惑

可以通过以下方式使用猫鼬创建模型

使用猫鼬

代码语言:javascript
复制
var mongoose = require('mongoose');
var Actor = mongoose.model('Actor', new Schema({ name: String }));

使用连接

代码语言:javascript
复制
var mongoose = require('mongoose');
var db = mongoose.createConnection(..);
db.model('Venue', new Schema(..));
var Ticket = db.model('Ticket', new Schema(..));
var Venue = db.model('Venue');

使用现有模型实例

代码语言:javascript
复制
var doc = new Tank;
doc.model('User').findById(id, callback);

现在,Mongoose.modelConnection.modelModel.model返回的模型之间的区别是什么。什么时候使用什么,创建/获取模型的推荐方法是什么?

EN

回答 3

Stack Overflow用户

发布于 2012-10-09 19:33:30

  1. mongoose.model将定义的模型绑定到通过调用mongoose.connect创建的默认连接。
  2. db.model将模型绑定到通过调用var db = mongoose.createConnection创建的连接。
  3. doc.model使用doc的模型所连接的连接按名称查找另一个模型。

这三种方法都可以合理地应用在同一个程序中;使用哪一种仅取决于具体情况。

票数 22
EN

Stack Overflow用户

发布于 2012-10-13 23:36:19

好的,下面是I found

重要!如果您使用mongoose.createConnection()打开了一个单独的连接,但是试图通过mongoose.model('ModelName')访问模型,它将无法正常工作,因为它没有连接到一个活动的db连接。在本例中,通过创建的连接访问模型:

代码语言:javascript
复制
var conn = mongoose.createConnection('your connection string');
var MyModel = conn.model('ModelName', schema);
var m = new MyModel;
m.save() // works

vs

代码语言:javascript
复制
var conn = mongoose.createConnection('your connection string');
var MyModel = mongoose.model('ModelName', schema);
var m = new MyModel;
m.save() // does not work b/c the default connection object was never connected
票数 15
EN

Stack Overflow用户

发布于 2016-05-02 02:46:03

mongoose.connect是用于连接到同一个数据库的,尽管您的数据库是balance或replicaSet。

db.model用于向Mongo开放的多个连接,每个连接具有不同的读/写设置

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12806559

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档