Dans le document de mongodb, "$ slice" étaitintroduit dans la version 3.2. Cependant, après avoir mis à jour mon mongodb vers la version 3.2, j'obtiens toujours cette erreur. Et je vérifie également les versions db.version () et mongo --version, toutes deux 3.2.18.
MODIFIER à partir du pipeline d'agrégats de commentaires
db.test.aggregate(
[
{
$match : {"keya" : val}, {$slice : ["$mylist", 2] }
}
]
)
Réponses:
0 pour la réponse № 1Le problème ici est que tranche de $ ne peut pas être utilisé en tant qu'opérateur de niveau supérieur dans le pipeline d'agrégation, mais uniquement dans le cadre de $ project. Veuillez ne pas noter que dans les documents MongoDB, il fait partie de Aggregation Pipeline Operators
et pas Aggregation Pipeline Stages
.
Essayez le code suivant:
db.test.aggregate([
{$match : {"keya" : vala}},
{ $project: { keya: 1, myList: { $slice: [ "$myList", 2 ] } } }
])