繁体   English   中英

在两个文档中都找到条件的嵌入式文档

[英]finding embedded document with condition in both documents mongoose

我正在开发一个包含2个模型(建筑物和地板)的程序。 该模式定义如下。

var BuildingSchema = new Schema({
    block:{type:String,trim:true},
    project_id:{type:String},
    floors:[{type:Schema.Types.ObjectId,ref:'Floor'}]
})

var FloorSchema = new Schema({
    name:{type:String,trim:true},
    building_id:{type:String,ref:'Building'}
}

我想做的是找到具有floor.name和building.project_id条件的地板结果。 我试过了但是没用

floor.find({name:'fname','building_id.project_id':123}).exec()

我如何得到想要的东西? 谢谢。

您将需要使用$ elemMatch仅检索地板。 mongoosejs文档在这里讨论

因此,您可以执行以下操作:

building.find({"project_id": 123}).where("floors").elemMatch(function(elem){
  elem.match("name", "fname");
});

这仅应返回与{"name": "fname"}匹配的floor元素

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM