我希望得到一张巨大的(1亿张唱片)的随机唱片mongodb.
什么是最快,最有效的方法?数据已经存在,并且没有可以生成随机数并获得随机行的字段.
有什么建议?
我试图通过_id与Meteor找到一个对象.
这是我尝试过的:
Meteor.publish("gifts", function(gid) {
console.log("Looking for "+ gid);
var gifts = Gifts.find({_id: gid}).fetch();
console.log("Result: " + gifts);
return gifts;
});
Run Code Online (Sandbox Code Playgroud)
这是输出:
寻找f1790caa-7a10-4af5-a01c-e80bb2c2fd55结果:
如果我拿出查询:
Meteor.publish("gifts", function(gid) {
console.log("Looking for "+ gid);
var gifts = Gifts.find().fetch()[1];
console.log("Result:" + gifts._id);
return gifts;
});
Run Code Online (Sandbox Code Playgroud)
对象在数组中,_id与上面相同.
寻找f1790caa-7a10-4af5-a01c-e80bb2c2fd55结果:f1790caa-7a10-4af5-a01c-e80bb2c2fd55
另外,如果我在mongo控制台中执行find,我会找到该对象:
> db.gifts.find({_id: 'f1790caa-7a10-4af5-a01c-e80bb2c2fd55'});
{ "name" : "A new gift", "_id" : "f1790caa-7a10-4af5-a01c-e80bb2c2fd55" }
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
我想从 Meteor 集合中获取随机排序的集合。最好/最有效的方法是什么?
我目前正在使用下划线 _.shuffle,它非常简洁,例如:
Template.userList.helpers({
users: function() {
return _.shuffle(Meteor.users.find().fetch());
}
});
Run Code Online (Sandbox Code Playgroud)
我使用 Jade,所以也许模板级别有一个选项?