Voici ce que j'obtiens de J'ai une tableaux d'entrée, ex: My Code: P> console.log (objets) code>:
laisser basableids = ["0 "," 1 "," 10 "] code>. Je dois vérifier
gallary.profilepic code> si donné les valeurs d'entrée disponibles ou non? Supposons que non disponible signifie que je dois appuyer sur une matrice et renvoyer les résultats. P>
["0", "10"]
3 Réponses :
Filtrez votre P> UPIDS CODE> Vérification du tableau Quels éléments de celui-ci ne sont pas inclus dans le
RégulierStudent code> Prop de votre
membres code> Données:
let UPIDs = ["0","1","10"];
const data = [{
"_id" : "5bb20d7556db6915846da55f",
"members" : {
"regularStudent" : [
"1",
"2"
]
}
},
{
"_id" : "5bb20d7556db6915846da55f",
"members" : {
"regularStudent" : [
"3",
"4"
]
}
}];
const regularStudents = data.map(d => d.members.regularStudent).flat();
console.log(UPIDs.filter(a => !regularStudents.includes(a)));
Comment obtenir des valeurs code> data code>, car vous utilisez data code> tableau, mais je reçois des objets
Vous pouvez rassembler un tableau de tous les identifiants ensemble (j'ai utilisé Réduire code>
dans mon exemple), puis Filtre code>
sur tous ces éléments de UPID qui n'apparaissent pas dans ce tableau.
P >
let UPIDs = ['0', '1', '10']; db.Groups.find().forEach(function(objects){ const ids = objects.reduce((acc, c) => acc.concat(c.members.regularStudent), []); const out = UPIDs.filter(el => !ids.includes(el)); console.log(out); });
Objets CODE> - Comme dans
Console.log (Objets) Code> - est un tableau d'objets que je suppose ou que vous ne recevriez pas cette sortie.
Je voudrais d'abord obtenir toutes les valeurs dans DB correspondant aux données que vous souhaitez entrer (sinon, il chargerait toutes vos entrées de collection), puis regardez les chaînes manquantes. Enfin pousser une nouvelle entrée si nécessaire.
const UPIDs = ['0', '1', '10']; // Thx to @Andy const entries = [{"_id":"5bb20d7556db6915846da55f","members":{"regularStudent":['1', '2']}}]; /* const entries = await db.Groups.find({ 'members.regularStudent': { $in: UPIDs, }, }); */ // Get the strings that are not in the DB const missing = UPIDs.filter(x => !entries.some(y => y.members.regularStudent.includes(x))); // Push the missing str in DB if (missing.length) { console.log('Add new data for values', missing); }
J'ai ajouté un exemple dans l'extrait
Parce que je ne peux pas effectuer la demande de MongoDB dans Stackoverflow ... c'est pour l'extrait de travailler comme exemple. Tout ce que vous voyez dans Stackoverflow, il n'a jamais été fait être copié / collé. Vous devez comprendre ce qui se passe et l'adapter à votre cas réel
N'utilisez pas de blockQuotes pour le style. Utilisez BlockQuotes uniquement lorsque vous citez quelque chose.
Clan vous élaborerez un peu plus? Je ne comprends pas la relation entre UPID et la liste des étudiants.
Veuillez lire via le centre d'aide , en particulier Comment puis-je Demandez une bonne question? I> Votre meilleur pari ici est de faire vos recherches, Rechercher pour des sujets connexes pour ainsi dire. . si i> b> vous êtes coincé et que vous ne pouvez pas vous détendre après avoir fait plus de recherches et de recherches, postez un exemple de reproductible minimal de votre tentative et dites spécifiquement où vous êtes coincé. Les gens seront heureux d'aider.
Qu'entendez-vous par non disponible?
@ Oscar Calderon, Uppids égaux à
RégulierStudent code> valeurs
@Prasanna tout le monde a basé leurs réponses sur votre exemple original. S'il vous plaît ne pas - deux mois plus tard - Modifiez votre question, puis faites des modifications à toutes les réponses à correspondre. Cela n'a aucun sens. S'il vous plaît roulez votre question Modifier.
Mais cela ne devrait pas affecter votre façon de mettre en œuvre la réponse.