Quel est l'équivalent de MongoDB à cette requête: p>
Sélectionnez "FOO" en tant que barre,
ID code> comme "SPEC" de TableMame P> blockQuote>
3 Réponses :
Il est possible de créer un nouveau champ avec le nom et la valeur donnés à partir d'un autre champ avec $ Projet:
db.books.aggregate(
[
{
$project: {
title: 1,
isbn: {
prefix: { $substr: [ "$isbn", 0, 3 ] },
group: { $substr: [ "$isbn", 3, 2 ] },
publisher: { $substr: [ "$isbn", 5, 4 ] },
title: { $substr: [ "$isbn", 9, 3 ] },
checkDigit: { $substr: [ "$isbn", 12, 1] }
},
lastName: "$author.last",
copiesSold: "$copies"
}
}
]
)
J'accepte cette réponse car la phase de projet permet des "alias" pour les champs. Voir User1735921 Répondre pour un exemple de la manière de projeter avec la modification de la valeur de champ d'origine
Si j'ai créé un index pour "titre" et en $ projet, j'ai changé "titre" sur "Leditle", trier "Leditle" utilise l'index du "titre"?
Vous pouvez utiliser n'importe quel opérateur comme Toupper ou Tolower ou Concat ou tout autre opérateur que vous avez l'impression que vous pensez pouvoir travailler et créer un alias.
Exemple:
Dans l'exemple suivant, créé_time est un champ de la collection.
(Je ne suis pas bon avec la syntaxe afin que vous puissiez le corriger, mais c'est l'approche) p> Ainsi, en utilisant un opérateur de cette mode, vous pouvez créer autant d'alias que votre comme. p> p>
intéressant. Je ne crois pas que le pipeline d'agrégation était en retour lorsque cette question a été posée. Je voudrais souligner que $ Concat pourrait être utilisé sans manipuler la valeur
Yeah Concat serait mieux, de toute façon je donnais juste un exemple de manière possible que je pensais ... édité mon post. Bien que Andrey ait déjà posté la syntaxe natale qui existe déjà à MongoDB. C'est juste un autre moyen possible, parfois il est utile lorsque vous écrivez des requêtes complexes.
Vous pouvez utiliser ceci, peut-être aider
{ "count" : 2, "month" : "2018-02" }
{ "count" : 1, "month" : "2018-03" }
M'a sauvé beaucoup de recherches. Merci.
Est-ce ce que vous essayez de faire? Stackoverflow.com/Questtions/14751835/...