簡體   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