是否可以从猫鼬的文档中获取模型?
Posted
技术标签:
【中文标题】是否可以从猫鼬的文档中获取模型?【英文标题】:Is it possible to get the model from the document in mongoose? 【发布时间】:2013-07-15 02:44:00 【问题描述】:var UserSchema = new Schema(...); // Schema
var User = mongoose.Model('User', UserSchema); // Model
var user = new User(...); // Document
只给定文档(在这种情况下是用户),是否有一种简单的方法来获取模型(在这种情况下是用户),而无需事先了解文档所指的模型是什么?有一个 user.schema,但据我所知,没有 user.model。
给定上下文一个文档和一个路径,我想知道在 DB 中是否有其他与该路径具有相同值的对象。
谢谢。
【问题讨论】:
【参考方案1】:假设您有一个 user
变量,它是 User 模型的一个实例,但这适用于任何猫鼬模型实例 var Model = user.constructor;
现在您可以使用 Model.find()
来运行您的查询,这将适用于任何集合.
如需模型名称,可通过user.constructor.modelName
获取。
【讨论】:
谢谢!不知道构造函数属性。你能把它简化为 var Model = user.constructor 吗?从 mongoose 对象重新查询的任何特殊原因? 是的,只有model.constructor.find
也可用。我更新了我的答案。
在使用 Promise 同时解决几个查询然后找出实际返回的内容时效果很好,即:Promise.all(promises).then(data => console.log(data[1].constructor.modelName) );
。以上是关于是否可以从猫鼬的文档中获取模型?的主要内容,如果未能解决你的问题,请参考以下文章