Helpex - Trao đổi & giúp đỡ Đăng nhập
20

// Snippet from Template
<div class="post-container">
  {{#each elements}}
    {{> post-element this}}
  {{/each}}
</div>

// Snippet from Client 
Meteor.subscribe('thePosts');

// Snippet from Server
Meteor.publish('thePosts', function(){
  return Posts.find({},  {sort:{createdAt:-1}, reactive:true});
});

Khi tôi làm...

Posts.insert({body:postBody, createdAt: new Date()});

Tài liệu bài đăng được thêm vào và xuất hiện ở cuối danh sách của tôi, trái ngược với thứ tự giảm dần như được chỉ định trong chức năng xuất bản của tôi. Bất kỳ ý tưởng về những gì tôi đang làm sai?

Cảm ơn!

20 hữu ích 0 bình luận 6.0k xem chia sẻ
49

Hàm xuất bản xác định bản ghi nào nên được đồng bộ hóa với cơ sở dữ liệu mini-mongo của bất kỳ máy khách đăng ký nào. Vì vậy, việc sắp xếp dữ liệu trong chức năng xuất bản thực sự không ảnh hưởng đến máy khách, vì cơ sở dữ liệu phía máy khách có thể sẽ lưu trữ chúng theo một số cách khác.

Tất nhiên, bạn có thể muốn sử dụng sắp xếp trong nhà xuất bản findđể giới hạn số lượng bản ghi đến N gần đây nhất - nhưng một lần nữa, đây chỉ là một cách để quyết định bản ghi nào được đồng bộ hóa chứ không phải cách chúng được lưu trữ / sử dụng bởi khách hàng.

Khi các bản ghi đã được đồng bộ hóa với máy khách, tùy thuộc vào mã mẫu để xác định cách hiển thị kết quả. Ví dụ:

Template.myTemplate.elements = function() {
  return Posts.find({}, {sort: {createdAt:-1}});
}

Ngoài ra, hãy xem phần "xuất bản được sắp xếp" trong bài đăng của tôi về những lỗi thường gặp .

49 hữu ích 3 bình luận chia sẻ
4

Bạn đã không đăng mã trình trợ giúp mẫu của mình.

Khi bạn thực hiện return Posts.find()từ hàm trợ giúp, truy vấn cũng phải chứa các đối số sắp xếp, như dưới đây:

Template.myTemplate.elements = function(){
   Meteor.subscribe('thePosts');
   return Posts.find({},  {sort:{createdAt:-1}, reactive:true});
}
4 hữu ích 5 bình luận chia sẻ
loading
Không tìm thấy câu trả lời bạn tìm kiếm? Duyệt qua các câu hỏi được gắn thẻ node.js mongodb meteor , hoặc hỏi câu hỏi của bạn.

Có thể bạn quan tâm

loading