반응형
여러 조건을 가진 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
반응형
'programing' 카테고리의 다른 글
UI 텍스트 필드가 변경되는 경우 어떻게 확인합니까? (0) | 2023.05.22 |
---|---|
기록 없이 agit repo 복사 (0) | 2023.05.22 |
git 삭제 후 커밋이 수행되지 않은 삭제된 파일 복구 (0) | 2023.05.22 |
첫 번째 줄로만 git log를 출력하는 방법은 무엇입니까? (0) | 2023.05.22 |
MongoDb에서 15분 간격으로 결과 그룹화 (0) | 2023.05.22 |