MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Meteor:Jak napisać funkcję publikowania zawierającą nazwę użytkownika?

Elementy Courses Publikujesz kolekcję.

Tak więc podczas wykonywania zapytania za pomocą Courses.find({"canEditCourse": { $in: [ this.userId ] } }); canEditCourse pole jest tym, co próbujesz dopasować do userId (dosłownie oznacza to znalezienie wszystkich kursów, w których canEditCourse tablica zawiera identyfikator użytkownika.)

Nie rozumiem jednak, dlaczego miałbyś zamiast tego używać nazwy użytkownika. Co ci to daje?

Jeśli chcesz to zrobić, musisz mieć canEditCourse pole będzie tablicą username a nie userId .Oznacza to, że musisz zmienić logikę, w której Kursy są tworzone lub edytowane oraz gdzie to pole jest wypełniane.

Nie jestem pewien, czy jest to warte zachodu. Jeśli chcesz wyszukać kursy według nazwy użytkownika, wyszukaj użytkownika według nazwy użytkownika, uzyskaj jego identyfikator użytkownika i wyszukaj kursy według identyfikatora użytkownika.

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 $slice (stronicowanie tablicy osadzonej)

  2. Połącz projekt java z bazą danych mongodb

  3. Powolne zapytanie o zakres w indeksie wielokluczowym

  4. Jak MongoDB indeksuje tablice?

  5. jak przekonwertować ciąg na wartości liczbowe w mongodb