J'essaie d'utiliser la requête suivante dans MongoDB mais elle n'est pas en cours d'exécution.
db.test.aggergate(
$match: {$and: [type: {$in: ["TOYS"]}, type: {$nin: ["BARBIE"]}, time:
{$lt:ISODate("2013-12-09T00:00:00Z")}]}})
Il dit le caractère invalide ":".
Est-il possible d'utiliser $ et avec $ match? J'ai vu un exemple sur ce forum de $ ou avec $ match, donc je suppose que c'est possible.
Merci d'avance pour votre aide et vos conseils.
$ et avec $ match fonctionne très bien.
Vous avez des erreurs de syntaxe dans votre requête. Essaye ça.
db.test.aggregate([
{
$match: {
$and: [
{type: {$in: ["TOYS"]}},
{type: {$nin: ["BARBIE"]}},
{time: {$lt:ISODate("2013-12-09T00:00:00Z")}}
]
}
}
])
Et pour ce que vous essayez de faire, vous n'avez pas besoin d'un $and
.
Si quelqu'un veut refuser ma réponse, c'est bon, c'est une question typique avec un manque de recherche.
db.test.find( {$and: [ {"type": {$in: ["TOYS"]}},
{"type": {$nin: ["BARBIE"]}},
{"time": {$lt:ISODate("2013-12-09T00:00:00Z")}}
]
})
AND fonctionne avec FIND, reçoit un tableau de correspondances (mais ce n’est pas une instruction de correspondance) Le cadre d’agrégation est pour quelque chose de complètement différent, c’est comme le dit Word, pour agréger (compte, somme, avg, et donc intéressant de grouper ou de décompresser , etc)
{
$match: {
$or:[
{'sender':sender, 'recipient':recipient},
{'recipient':sender,'sender':recipient}
]
}
}
en utilisant $ ou
Ci-dessous est comment je fais avec beaucoup de dollars et avec $ ou
User.aggregate([
{
$lookup:{
from:'influencers',
localField:'_id',
foreignField:'user',
as:'influencer'
}
},
{ $match:{ '$and':
[ { '$and': [ { 'influencer.aboutMe.birthday': { '$lte': 2017-09-11T09:10:07.283Z } } ] },
{ '$and': [ { 'influencer.aboutMe.minPrice': { '$gte': 0 } } ] },
{ '$and':
[ { '$or':
[ { '$and': [ { 'influencer.followed_by': { '$gte': 0 } } ] },
{ '$and': [ { 'influencer.youTubeSubscribercount': { '$gte':
0 } } ] } ] } ] },
{ 'influencer.isAdminverified': true },
{ 'influencer.status': 'Verified' } ] } }
]);