Tôi đang cố gắng lặp qua các ID khác nhau trên một bộ sưu tập trong nút. Cái gì mà có thể làm việc như đoạn mã sau:Mongoose - Chuyển đến phần tử tiếp theo
//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'
nhất ý tưởng cho đến nay sẽ có thêm một linkedlist để schema của tôi vì vậy tôi có thể gọi tìm() trong tài liệu tham khảo tiếp theo của tôi đến một ID cụ thể nhưng tôi đã hy vọng cho một cái gì đó ít 'khéo léo' sẽ cho phép tôi sử dụng tham chiếu Mongoose này (thisPost) như là một con trỏ mà tìm thấy của tôi() có thể bắt đầu từ đó.
Cảm ơn
EDIT: Lặp lại có nghĩa là làm việc trên nhiều truy vấn trang. ví dụ tốt hơn:
//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...
Không sử dụng phiên bản này cuối cùng nhưng phải, đánh giá từ tài liệu, luồng là cách tốt nhất để làm những gì tôi muốn. Mặc dù tôi sẽ không sử dụng nó vì nhiều lý do phụ thuộc vào kiến trúc mã hiện tại của ứng dụng của tôi :) – red
Tôi đã sửa đổi câu trả lời của mình dựa trên cập nhật của bạn. –
Chà. Tôi đã thực hiện nó ngày hôm qua bằng cách sử dụng một danh sách liên kết trong cơ sở dữ liệu của tôi, nhưng câu trả lời của bạn rất đơn giản, tôi vô cùng xấu hổ vì không tự nghĩ về nó. Kudos cho suy nghĩ của bạn và một triệu cảm ơn bạn đã trả lời :) – red