programing

여러 조건을 가진 mongoose "Find"

skycolor 2023. 5. 22. 20:52
반응형

여러 조건을 가진 mongoose "Find"

저는 mongoose 필터를 사용하여 mongoDB 데이터베이스에서 데이터를 가져오려고 합니다.이 시나리오에서는 데이터베이스의 각 사용자 개체에 "지역" 또는 "섹터"와 같은 특정 필드가 있습니다.

현재 저는 키워드 "region"이 포함된 모든 사용자를 다음과 같이 가져옵니다.

 // Filter all healthcare bios by region
 app.get('/user',function(req, res) {

 // use mongoose to get all users in the database
 User.find({region: "NA"}, function(err, user) 
 {
    // if there is an error retrieving, send the error. nothing after res.send(err) will execute
    if (err)
    {
        res.send(err);
    }
    // return all todos in JSON format
    console.log(user);
    res.json(user);

});
});

어떻게 하면 개체에 "지역" 및 "섹터"를 모두 포함하는 사용자를 반환한다는 조건을 mongoose에 넣을 수 있습니까?현재는 지역 키워드가 있는 사용자만 반환합니다.

저는 $와 연산자를 사용해 보았지만 작동하지 못했습니다.

app.get('/user',function(req, res) {

 User.find({region: "NA",sector:"Some Sector"}, function(err, user) 
 {
    if (err)
    {
        res.send(err);
    }
    console.log(user);
    res.json(user);

 });
});

두 지역 중 하나의 데이터를 원하는 경우:"NA" 또는 섹터:"일부 섹터".사용할 수 있습니다.$or교환입니다.

User.find({$or:[{region: "NA"},{sector:"Some Sector"}]}, function(err, user) 
 {
    if (err)
    {
        res.send(err);
    }
    console.log(user);
    res.json(user);

 });

두 지역이나 섹터가 동시에 존재하는 한 어떤 지역이나 섹터를 포함하는 결과를 원하는 경우 다음 쿼리가 필요합니다.User.find:{region: {$exists:true},sector: {$exists:true}}

,의 값과 같습니다.$and다른 필드를 검색하는 한.

  const dateBetweenDates = await Model.find({
    $or: [
      {
    $and: [
      { From: { $gte: DateFrom } },
      { To: { $lte: DateTo } },
    ],    // and operator body finishes
    },
      { _id: req.user.id},
    ], //Or operator body finishes
  })

mongoose를 사용하여 여러 조건으로 찾으려는 다른 사용자를 위해 비동기/대기를 사용한 코드가 있습니다.

app.get('/user', async (req, res) {

 const user = await User.find({region: "NA",sector:"Some Sector"});

 if (user) {
   // DO YOUR THING
 }

});

언급URL : https://stackoverflow.com/questions/33627238/mongoose-find-with-multiple-conditions

반응형