S'il s'agit de ma structure de collection:
{ _id: ObjectId("4fdbaf608b446b0477000142"), name: "product 1" }
{ _id: ObjectId("4fdbaf608b446b0477000143"), name: "product 2" }
{ _id: ObjectId("4fdbaf608b446b0477000144"), name: "product 3" }
3 Réponses :
Vous pouvez récupérer les articles dans l'ordre d'insertion en utilisant ObjectId. Voir: http://www.mongodb.org/display/docs/Optimizing + Object + IDS # OptimiserObjectids P>
Si vous souhaitez les récupérer dans un autre ordre, vous devrez définir ce que cet ordre est et stockera plus d'informations dans vos documents. P>
Il est préférable d'ajouter des critères explicites supposer que la commande que vous êtes après est "ordre d'insertion" et que vous utilisez la valeur par défaut de MongoDB. ObjectIds, alors vous pouvez interroger en fonction de l'objetID: p> Notez que cet exemple ne fonctionne que parce que: p> Donc vraiment, ce type implicite est le même que: p> Si vous avez ajouté plus de critères à la requête pour qualifier comment trouver le "suivant" Produit (par exemple, une catégorie Vous pouvez vérifier l'utilisation de l'index avec expliquer () . p> p> () code> si vous souhaitez une commande prévisible de résultats.
_ID code> seul utilisera l'index par défaut _id code> (trié par ID) pour trouver un match li>
ul> code>), la requête pourrait utiliser un index différent et la commande peut ne pas être aussi utile. p>
Démarrer dans ceci: p> Mongo 5 Code>, c'est un cas d'utilisation parfait pour le nouveau $ SetWindowfieldfieldfieldfieldfieldfieldfields opérateur d'agrégation:
$ trier code> s documents par leur ordre d'insertion à l'aide de leur _id code> S ( ObjectId code> s contient l'horodatage d'insertion): Sortby: {_ID: 1} code> li>
suivant code> dans chaque document ( sortie: {exécutant: {...}} code>)
$ Appuyez sur code> ing tout le document $$ root code> ( $ push: "$$ root" li>) li>) li>
code>) qui se trouve dans ce cas est une plage de documents de document suivant: fenêtre: {Documents: [1, 1]} < / code>. li>
ul>
li>
ul> p>
Vous voulez donc interroger pour le premier document après "produit 1"? Comment définissez-vous l'ordre des documents (ce qui est considéré comme «après»)?
Je ne les ai pas réorganisés du tout, ils sont dans l'ordre d'insertion initial. La façon dont j'ai eu le produit 1 est une personne va à Testsite.com/4fdbaf608b446b0477000142 Je prends le numéro et la requête par ID.