sql >> データベース >  >> NoSQL >> MongoDB

Meteor:ユーザー名を含むpublish-functionの書き方

    Coursesのアイテム コレクションはあなたが公開しているものです。

    したがって、Courses.find({"canEditCourse": { $in: [ this.userId ] } });でクエリを実行すると canEditCourse フィールドは、userIdに一致させようとしているものです (文字通り、canEditCourseが存在するすべてのコースを検索することを意味します 配列にはuserIdが含まれます。)

    ただし、ここで代わりにユーザー名を使用する理由がわかりません。それはあなたに何をもたらしますか?

    これを実行したい場合は、canEditCourseが必要です。 フィールドはusernameの配列です userIdではありません つまり、コースが作成または編集され、このフィールドが入力されるロジックを変更する必要があります。

    トラブルに見合うだけの価値があるかどうかはわかりません。ユーザー名でコースを検索する場合は、ユーザー名でユーザーを検索し、ユーザーIDを取得して、ユーザーIDでコースを検索します。

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



    1. ホットフィックスを制御する際のMongoエラー

    2. Mongoで$addToSetのキーを指定できますか?

    3. FUSEファイルシステムでLinuxVFSキャッシュを使用することは可能ですか?

    4. インデックス付きフィールドを持つMongoDB正規表現