다음 쿼리를 수행하려고합니다.
Entrant
.find
enterDate : oneMonthAgo
confirmed : true
.where('pincode.length > 0')
.exec (err,entrants)->
where 절을 올바르게 수행하고 있습니까? pincode
null이 아닌 문서를 선택하고 싶습니다 .
답변
다음과 같이 할 수 있어야합니다 (쿼리 API를 사용하는 것처럼) :
Entrant.where("pincode").ne(null)
… 다음과 같은 mongo 쿼리가 생성됩니다.
entrants.find({ pincode: { $ne: null } })
도움이 될 수있는 몇 가지 링크 :
답변
나는 여기서 끝났고 내 문제는 내가
{$not: {email: /@domain.com/}}
대신에
{email: {$not: /@domain.com/}}
답변
필드 값이 지정된 값과 같지 않은 문서를 선택합니다. 여기에는 필드가 포함되지 않은 문서가 포함됩니다.
User.find({ "username": { "$ne": 'admin' } })
$ nin은 다음과 같은 문서를 선택합니다. 필드 값이 지정된 배열에 없거나 필드가 존재하지 않습니다.
User.find({ "groups": { "$nin": ['admin', 'user'] } })
답변
total은 필드 값이 지정된 값과 같지 않은 문서를 계산합니다.
async function getRegisterUser() {
return Login.count({"role": { $ne: 'Super Admin' }}, (err, totResUser) => {
if (err) {
return err;
}
return totResUser;
})
}
답변
좋아,이 문제에 대한 가능한 해결책을 찾았습니다. Mongo에는 조인이 존재하지 않는다는 사실을 깨달았 기 때문에 먼저 원하는 역할로 사용자의 ID를 쿼리하고 그 후에 다음과 같이 프로필 문서에 대한 또 다른 쿼리를 수행해야합니다.
const exclude: string = '-_id -created_at -gallery -wallet -MaxRequestersPerBooking -active -__v';
// Get the _ids of users with the role equal to role.
await User.find({role: role}, {_id: 1, role: 1, name: 1}, function(err, docs) {
// Map the docs into an array of just the _ids
var ids = docs.map(function(doc) { return doc._id; });
// Get the profiles whose users are in that set.
Profile.find({user: {$in: ids}}, function(err, profiles) {
// docs contains your answer
res.json({
code: 200,
profiles: profiles,
page: page
})
})
.select(exclude)
.populate({
path: 'user',
select: '-password -verified -_id -__v'
// group: { role: "$role"}
})
});
답변
안녕하세요 여러분 저는 이것에 갇혀 있습니다. User에 대한 참조가있는 문서 프로필이 있고 user ref가 null이 아닌 프로필을 나열하려고했지만 (이미 채우기 중에 rol로 필터링했기 때문에) 몇 시간 동안 Google 검색 후 알아낼 수 없습니다. 이것을 얻는 방법. 이 쿼리가 있습니다.
const profiles = await Profile.find({ user: {$exists: true, $ne: null }}) .select("-gallery") .sort( {_id: -1} ) .skip( skip ) .limit(10) .select(exclude) .populate({ path: 'user', match: { role: {$eq: customer}}, select: '-password -verified -_id -__v' }) .exec(); And I get this result, how can I remove from the results the user:null colletions? . I meant, I dont want to get the profile when user is null (the role does not match). { "code": 200, "profiles": [ { "description": null, "province": "West Midlands", "country": "UK", "postal_code": "83000", "user": null }, { "description": null, "province": "Madrid", "country": "Spain", "postal_code": "43000", "user": { "role": "customer", "name": "pedrita", "email": "myemail@gmail.com", "created_at": "2020-06-05T11:05:36.450Z" } } ], "page": 1 }
미리 감사드립니다.