MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Meteor:Cách viết hàm xuất bản chứa tên người dùng

Các mục của Courses Bộ sưu tập là những gì bạn đang xuất bản.

Vì vậy, khi bạn truy vấn với Courses.find({"canEditCourse": { $in: [ this.userId ] } }); canEditCourse là trường mà bạn đang cố gắng đối sánh với userId (nghĩa đen của nó là tìm tất cả các Khóa học trong đó canEditCourse mảng chứa userId.)

Tuy nhiên, tôi không hiểu tại sao bạn lại muốn sử dụng tên người dùng ở đây. Điều đó mang lại cho bạn điều gì?

Nếu bạn muốn làm điều này, thì bạn cần phải có canEditCourse trường là một mảng username chứ không phải userId Điều đó có nghĩa là bạn cần thay đổi logic nơi các Khóa học được tạo hoặc chỉnh sửa và nơi trường này đang được điền.

Không chắc nó là giá trị rắc rối. Nếu những gì bạn muốn là tra cứu Khóa học theo tên người dùng, sau đó tra cứu Người dùng theo tên người dùng, lấy userId của anh ấy / cô ấy và tra cứu Khóa học theo userId.

Meteor.publish('editableCourses', function (username) {
    var myUser = Meteor.users.findOne({'username': username});
    return Courses.find({"canEditCourse": { $in: [ myUser._id ] } });
});



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB findOneAndReplace ()

  2. sao băng:làm cách nào tôi có thể sao lưu cơ sở dữ liệu mongo của mình

  3. Rails:lưu trữ dữ liệu được mã hóa trong cơ sở dữ liệu

  4. Tìm kiếm trong MongoDB trong bộ sưu tập

  5. Tránh các mục trùng lặp trên mảng Mongoose