2017-01-30 8 views
0

Я заметил, что везде, где у меня есть определение публикации с использованием $ ne или $ nin, это не имеет никакого эффекта. Например, я определяю публикацию как

Meteor.publish('testing', function() { 
    return Courses.find({name: {$ne: 'Course A'}}) 
}); 

Я убедился, что у меня есть курс с названием "Курс A", однако, когда я подписываюсь, как это на клиенте:

MeteorObservable.subscribe("testing").subscribe(() => { 
     console.log(Courses.find().fetch()) 
    }); 

I получить каждый отдельный курс в базе данных (в том числе с именем «Курс А»). В случае, если это имеет значение, мое определение для курсов: export const Courses = new MongoObservable.Collection<Course>('courses');. Неправильно ли мой селектор, или это ошибка с Метером? Когда я запускаю тот же селектор на стороне клиента, все работает так, как ожидалось.

ответ

0

Был ли у вас вопрос об отключении/удалении автоматической публикации? Вы можете проверить его внутри файла .meteor/packages. Если да, то удалите его, чтобы метеор уважал ваши публикации.

Дайте мне знать, если это решит вашу проблему. Благодаря!

Update 1: Попробуйте это:

MeteorObservable.subscribe("testing").subscribe(() => { 
    console.log(Courses.find({name: {$ne: 'Course A'}}).fetch()); 
}); 
+0

Да, у меня есть, и все другие мои публикации работы (те, где $ нин и $ пе не используются) –

+0

по «Да, у меня есть» вы имеете в виду у вас все еще есть пакет для автоматической публикации? Удалили ли вы его удалить? Кроме того, если это не сработает, вы можете попробовать изменить свою подписку на: '' ' MeteorObservable.subscribe (" testing "). Subscribe (() => { console.log (Courses.find ({ name: {$ ne: 'Course A'}}). fetch()); }); '' ' – gone43v3r

+0

Извините, у меня нет пакета автоматической публикации. Мой плохой для путаницы. –