我试图使用mongoose从Mongo数据库中读取数据,其中模型使用了鉴别器继承功能,但是DB中的文档都是由另一个服务(使用Java Mongo驱动程序)插入的,该服务不使用mongoose或其鉴别器。当我尝试从DB读取时,使用子类模型(那些使用区分器函数的查询)的所有查询都返回空数组。我认为这是因为猫鼬希望这些文档包含一个鉴别键,但是插入文档的服务不知道鉴别键,因此没有在mongoDB文档上设置它们。
如何创建模型并使用判别器函数,以便它们仍然可以查询由其他服务插入的这些文档?
对于更多的上下文,我想使用鉴别器,因为继承允许我清晰地构造我正在创建的模型的字段,并定义特定于模型的静态方法,而且它允许我不编写重复的代码。如果有更好的方法来完成这些目标,而不使用猫鼬的内置鉴别模式,请分享!
发布于 2017-06-01 05:36:00
根据文档的说法:
猫鼬告诉不同鉴别器模型之间的区别的方式是“鉴别器键”,默认情况下是__t。猫鼬将名为__t的字符串路径添加到架构中,用于跟踪该文档的实例是哪个鉴别器。
另外,猫鼬将带有鉴别器的文档保存到单个集合中。
因此,为了访问文档,需要保存__t参数,并检查是否将具有相同鉴别器的架构保存到单个集合中。
https://stackoverflow.com/questions/43644937
复制相似问题