[英]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.