【问题标题】: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 中是否有其他与该路径具有相同值的对象。

谢谢。

【问题讨论】:

    标签: node.js mongoose


    【解决方案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) );
    猜你喜欢
    • 2016-07-30
    • 1970-01-01
    • 2018-10-13
    • 2020-12-04
    • 2019-10-06
    • 2019-11-04
    • 2017-11-24
    • 2018-05-17
    • 2019-12-20
    相关资源
    最近更新 更多