2014-10-10 3 views
0

Я создал объект в Meteorjs для хранения информации о базе данных для N чисел рулонов кости, а затем кости отображаются с помощью дескрипторов #each iterator. Вот некоторые из моего кода:Не удается удалить элементы из базы данных Mongo в Meteorjs

Глобальная коллекция Монго:

Items = new Meteor.Collection('items');</code> 

Когда я бросить кости, это то, что происходит с коллекцией, когда кнопка нажата:

//Don't want to bore you with all code, so here's just important parts... 
    var randomNumber=Math.floor(Math.random() * numSides) +1); 
    var numDice = 6;// It's really a variable passed in, but for here it's 6. 
    for (var i = 0; i < numDice; i++) { 
       Items.insert(item: randomNumber) 
    }; 

И то они отображают информацию как кости, потому что она отображает числа, которые у меня есть CSS'd, чтобы выглядеть как Dice. Но я блуждаю здесь ... Во всяком случае, игра в кости играет потрясающе, но я хочу очистить кости, когда я снова скачу. прямо сейчас, они просто продолжают складываться. И когда я пытаюсь использовать любой метод для удаления вещей Mongo DB Items, это приводит к сбою моего приложения. Поскольку я не уверен, как хорошо отлаживать в браузере, мне нужна помощь, и я собираюсь спросить об этом здесь ...

Теперь моя главная проблема в том, что когда кости снова свернуты , Я хочу очистить базу данных и начать заново. Я новичок в JavaScript и Meteor, и я пришел из Java & & Ruby land, поэтому любые предложения приветствуются.

Я попытался

Items.removeIndexes(), 
Items.purge(), 
Items.remove({}) 

Они все просто заморозить мое приложение, и номера я отображенные в #each итератора все еще там. Я думал, что это удалит материал, и нажмите изменения ... Нет ??? Пожалуйста помоги.

код на GitHub @http://www.github.com/rabbitfighter81/DMware/

ответ

1

Вы должны использовать метод remove, но если вы называете его от клиента, вы можете удалить только один документ на вызов, и селектор должен ссылаться на документы _id поля , Итак, вот пример, чтобы удалить все документы в коллекции, которую имеет клиент:

TheCollection.find().forEach(function(doc){ 
    TheCollection.remove(doc._id) 
}) 
+0

Благодарим за быстрый ответ. Сообщество JS очень приятно пока. Никаких звонков noobcakes или чего-то еще. Я привык к тому, что люди грубые, поэтому, спасибо, я постараюсь поработать с ним и сообщить вам, если это сработает ... Кроме того, я знаю документы Meteor, дескрипторы руля, но есть ли какие-либо другие хорошие ресурсы, которые вы рекомендовали бы лучше понять по этим причинам, потому что я бы лучше прочитал, чем задавать вопросы, однако большинство книг Meteor теперь устарели (например, около 2012 года, используя маршрутизатор вместо железа-маршрутизатора и т. д. .. многое другое, и книги, которые я нашел, все больше не работает). –

+0

@JoshuaMichael, я бы рекомендовал прочитать документы; что даст вам намек на то, что вы можете сделать в Метеор. Но также проверьте [страницу обучения на сайте метеоров] (https://www.meteor.com/learn-meteor), особенно Discover Meteor и EventedMind. –

+0

Еще раз спасибо. Peppe L-G. Ваше решение работало как шарм :) –