2016-04-08 7 views
0

In Meteor Projekt möchte ich den ersten Artikel in einer Sammlung finden. Es ist für eine Seite mit einem Formular, in dem ich den Inhalt bearbeiten kann.MeteorJS: wie finden erste Artikel in der Sammlung

Ich habe eine neue Sammlung mit meinen Daten erstellt. Wie kann ich nur dieses Objekt anvisieren, ohne die _id im Code (BEURK) fest zu codieren?

Mein Router:

Router.route('/admin/about/edit', { 
    name: 'aboutContentAdmin', 
    layoutTemplate: 'adminLayout', 
    data: function() { 

     var about = About.find().sort({ 
      x: 1 // doesn't work 
     }); 

     return { 
      about: about 
     }; 

    } 
}); 

Thank you!

Antwort

0

Um die Bestellung zu garantieren, benötigen Sie einen Schlüssel zum Sortieren. Das _id Feld ist nicht natürlich in Meteor sortiert. Das normale Muster besteht darin, einen createdAt Schlüssel des Typs Datum hinzuzufügen und danach zu sortieren. Sie können dann die Rückkehr zu einem einzigen Dokument gesetzt begrenzen das ersten Dokument zu erhalten:

var about = About.findOne({},{sort: {createdAt: 1}, limit: 1}); 
+0

Hi! Ich habe deine Var getestet, aber ich habe kein Ergebnis. Wenn ich auf meinem Mongo ".find ({sort: {createdAt: 1}, limit: 1});", Mongo Rückgabe false. Auf Meteor , wenn ich das teste._i d auf Vorlage, es ist undefine :( –

+0

Pardon Stéphane, typo. Siehe aktualisierte Antwort. –

0
About.findOne({sort: {createdAt: 1}, limit: 1}); 
1

Vielen Dank für Ihre bearbeiten, aber ich habe kein Ergebnis :) this._id Alwayse nicht definiert ist. Mein Code:

Router.route('/admin/about/edit', { 
name: 'aboutContentAdmin', 
layoutTemplate: 'adminLayout', 
data: function() { 

    var about = About.findOne({},{ 
     sort: { 
      createdAt: 1 
     }, limit: 1 
    }); 

    return { 
     about: about 
    }; 

    } 
}); 

Und meine Vorlage Ereignisse:

Template.aboutContentAdmin.events({ 
'submit form': function(e) { 

    e.preventDefault(); 

    var id = this._id; 

    alert(id); 

    var aboutContentProperties = { 
     createdAt: new Date(), 
     content: $('[name="content"]').val() 
    } 

    // Request 

    } 
}); 

My mongodb finden in About:

{ "_id" : "jxDm97hXiHiJwCzQT", "createdAt" : ISODate("2016-04-09T16:45:33.285Z"), "content" : "fege" } 

Ich verstehe nicht, warum es nicht funktionieren :(

+0

Es ist okay, ich habe meinen Router mit 'Return about;' und es funktioniert :) Danke Michel! –

Verwandte Themen