【发布时间】:2012-08-25 02:08:19
【问题描述】:
我正在尝试在 nodejs 中的集合上迭代不同的 ID。类似于以下代码的东西:
//Callbacks removed for readability
var thisPost = mongoose.model('Post').findOne({tags: 'Adventure'});
console.log(thisPost.title); // 'Post #1 - Adventure Part 1'
var nextPost = thisPost.next({tags: 'Adventure');
console.log(nextPost.title); // 'Post 354 - Adventure Part 2'
到目前为止,最好的想法是在我的架构中添加一个链表,这样我就可以在下一次引用特定 ID 时调用 find(),但我希望有一些不那么“棘手”的东西,可以让我使用这个 Mongoose 引用(thisPost) 作为我的 find() 开始的光标。
谢谢
编辑:迭代旨在处理多个页面查询。更好的例子:
//Callbacks removed for readability
//User 'JohnDoe' visits the website for the first time
var thisQuote = mongoose.model('Quote').findOne().skip(Math.rand());
res.send(thisQuote); // On page output, JohnDoe will see the quote 42
//Saving the current quote cursor to user's metadatas
mongoose.model('User').update({user: 'JohnDoe'}, {$set: {lastQuote: thisQuote }});
//User 'JohnDoe' comes back to the website
var user = mongoose.model('User').findOne({user: 'JohnDoe});
var thisQuote = user.lastQuote.next();
res.send(thisQuote); // On page output, JohnDoe will see the quote 43
//Saving the current quote cursor to user's metadatas
mongoose.model('User').update({user: 'JohnDoe'}, {$set: {lastQuote: thisQuote }});
//And so on...
【问题讨论】: