0
Ich habe eine Sammlung von Dokumenten, in denen jedes Dokument die folgenden Eigenschaften hat: userId
, permissions
.Suchen Abfrage mit Bedingungen
Wie kann ich die findOne
Abfrage verwenden, um ein Dokument zurückzugeben, das userId = 41
AND permissions = admin
OR permissions = op-admin
hat?
Ich habe die folgende Abfrage versucht, aber es gibt keine Ergebnisse ...
User.findOne(
{
'userId': 42
},
{
$and: [
{
$or: {'permissions': 'admin'}
},
{
$or: {'permissions': 'op-admin'}
}
]
}, function(err, doc) {
if(err) {
console.log(doc);
console.log(err);
}
});
Gibt es etwas, was ich nicht richtig tue?
'.find ({ "userId": 42 "Berechtigungen": { "$ in": [ 'admin', 'op-admin']}})'. Das '$ in' ist im Grunde eine Kurzschrift für' $ or', wird aber auf den gleichen Schlüssel angewendet. Sie müssen auch fast nie die knappen "$ und" verwenden. Danke Robert –
@NeilLunn benötigt auch die 'userId'; D – robertklep
@NeilLunn Ich habe versucht, Ihren Code und auch' userId' zur Abfrage hinzugefügt und es funktioniert perfekt. Sie sollten diesen Kommentar als Antwort – Valip