簡體   English   中英

我想用 elemmatch 查詢

[英]I want to query with elemmatch

我的 mongoose 架構例如:

const newwant = new mongoose.Schema({
  statuscol : {
    type : Boolean,
    default : false,
    required :true
  }
})


   const Rooms = new mongoose.Schema({
  createdBy : {
    type : String,
    required : true
  },
  Roomname : {
    type : String,
    required : true
  },
  createdDate : {
    type : Date,
    default : Date.now
  },
  Message : [{
    username : String,
    date :  Date
  }],
  wants : [newwant]
})

一個我用express寫的api會加進去,false值可以返回true。 我現在要做的是只凍結其值在想要數組中的對象。

我為此嘗試了這樣的代碼,但沒有用

     router.get("/accepted",async(req,res) => {
    try{ 
  rooms.findById(req.body.id,{wants : {$elemMatch : {"statuscol" : true}}},
      function(err, result) {
        if (err) {
          res.send(err);
        } else {
          res.json(result);
        }
      }
        ) 
    }catch(err){
      console.log(err)
    }
  })

當我運行此代碼時,即使集合中有 2 個 true,它也只會凍結一個 object,所以它對我不起作用,如果您能提供幫助,我會很高興,您可以詢問您是否有任何問題。

"mongoose": "^5.12.2"

findById()觸發findOne()中間件。 所以,使用find( {_id: req.body.id} )

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM