我正在尝试将最新文档的_id字段输入到集合中。
我创建了一个名为Rooms:
的集合Rooms = new Meteor.Collection('rooms');
此代码应将最新项目限制为一个:
Rooms.find({}, {fields: {'_id':1}}).sort({_id:-1}).limit(1)
相反,我得到了
Uncaught TypeError: Rooms.find(...).sort is not a function(…)
我哪里错了?
解决方案(感谢@aedm )
var roomID = Rooms.findOne({}, {fields: {_id: 1}, sort: {_id: -1}});
return roomID._id.toString();
答案 0 :(得分:1)
Collection.find
返回游标,而不是数组。游标没有sort
方法。请尝试以下方法:
Rooms.findOne({}, {fields: {_id: 1}, sort: {_id: -1}});
http://docs.meteor.com/api/collections.html#Mongo-Collection-find
修改强>
正如@MichelFloyd指出的那样,Meteor生成的_id
不按时间顺序排序,就像MongoDB自己创建的那样。要按创建日期排序,您必须将这些时间戳存储在您的收藏中。
答案 1 :(得分:0)
会评论,但还没有代表。您可以将id作为字符串获取:Rooms.findOne({},{fields:{_ id:1},sort:{_ id:-1}})._ id;