繁体   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