2016-05-03 6 views
0

Hier ist der Index:

contracts._ensureIndex({asset_type: 1, createdAt: 1}); 

Hier ist die Abfrage:

var result = contracts.find({ 
         $query:{ 
          asset_type: "forward Contract", 
          createdAt: {$gte: filter.startDate, $lte: filter.endDate} 
         }, 
         $hint: { 
          asset_type: 1, createdAt: 1 
         }, 
         $orderBy: { 
          createdAt: -1 
         } 
        }, { 
         skip: skip, 
         limit: 10 
        } 
       ).fetch() 

Das createdAt Feld enthält Zeitstempel. Ich möchte das Ergebnis in absteigender Reihenfolge erhalten, d. H. Zuerst in den letzten Dokumenten.

Aber die Bestellung scheint nicht zu funktionieren?

+0

'$ orderBy'' orderby' $ sollte –

+4

Wenn Sie nicht die native mongoDB Treiber verwenden, die API für Meteor Mongo Sammlung ist anders. Die Felder und die Reihenfolge werden als zweites Argument (options) mit verschiedenen Schlüsseln übergeben. Weitere Informationen finden Sie in der Dokumentation (http://docs.meteor.com/#/full/find). – MasterAM

Antwort

1

Meteor hat aufgrund seiner isomorphen Natur eine etwas andere Implementierung von MongoDB. Hier ist, wie es zu tun:

var result = contracts.find({ 
       asset_type: "forward Contract", 
       createdAt: {$gte: filter.startDate, $lte: filter.endDate} 
      },{ 
       sort:{createdAt: -1}, 
       skip: skip, 
       limit: 10  
      }).fetch()