sql >> Databasteknik >  >> NoSQL >> MongoDB

hur kan jag skapa min mongodb-fråga baserat på input från användaren i node.js?

Om jag förstod det väl:

  • Om användaren har ett förbjudet device_id , blockera honom sedan
  • Om användaren har ett förbjudet display_name , blockera honom sedan

I så fall spelar det egentligen ingen roll om han är anonymous eller inte.

let excludedUsernames, excludedDevices;

blockedUsers.forEach((e) => {
    excludedUsernames.puhs({ e["display_name"] });
    excludedDevices.push({ e["device_id"] });
});

query.$and.push({ 'display_name' : { $nin: excludedUsernames } });
query.$and.push({ 'device_id'    : { $nin: excludedDevices   } });

REDIGERA

query.$or.push({
    $and: [
        { 'device_id'    : { $nin: excludedDevices }},
        { 'display_name' : "anonymous" }
    ]
});
query.$or.push({ 'display_name' : { $nin: excludedUsernames } });



  1. Aggregera med antalet underdokument som matchar villkoret och grupperingen

  2. Vad är Map Only-jobb i Hadoop?

  3. Använder MongoDB:s Geospacial index med 3d-data

  4. Fel vid skapande av bean med namnet 'personRepository':Anrop av init-metoden misslyckades; kapslade undantag är com.mongodb.util.JSONParseException: