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