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

Wyciągnij wpis z tablicy przez Meteor

Dla podstawowego zastosowania meteorów, nazywam to „piętrowym”. Jeśli utworzysz zupełnie nowy projekt i po prostu zdefiniujesz kolekcję, to $pull operator działa zgodnie z oczekiwaniami:

Konsola:

meteor create tickets
cd tickets
meteor run

Następnie otwórz powłokę i wstaw swoje dane:

meteor mongo

> db.tickets.insert(data)   // exactly your data in the question

Następnie po prostu utwórz podstawowy kod i szablon:

tickers.js

Tickers = new Meteor.Collection("tickers");

if (Meteor.isClient) {

  Template.body.helpers({
    "tickers": function() {
      return Tickers.find({});
    }
  });

}

if (Meteor.isServer) {
  Meteor.startup(function () {
    // code to run on server at startup
  });
}

tickers.html

<head>
  <title>tickers</title>
</head>

<body>
  <h1>Welcome to Meteor!</h1>

  <ul>
    {{#each tickers}}
      {{> ticker}}
    {{/each}}
  </ul>

</body>

<template name="ticker">
  <li>
    {{_id}}
    <ul>
      {{#each entries}}
        {{> entry }}
      {{/each}}
    </ul>
  </li>
</template>

<template name="entry">
  <li>{{ id }} - {{text}}</li>
</template>

Aplikacja powinna działać poprawnie, więc w konsoli przeglądarki wykonaj .update() (wcięte do czytania):

Tickers.update(
    { "_id": "ZcEvq9viGQ3uQ3QnT" },
    { "$pull": { "entries": { "id": "fc29774dadd7b37ee0dc5e3e" } }}
)

A pozycja jest usuwana z wpisów, a strona jest odświeżana bez pozycji. Więc wszystko zniknęło, zgodnie z oczekiwaniami.

Nawet dodanie pakietów SimpleSchema i Collection2 nie ma tutaj znaczenia:

 meteor add aldeed:simple-schema
 meteor add aldeed:collection2

tickers.js

Tickers = new Meteor.Collection("tickers");

TickerEntries = new SimpleSchema({
  "id": {
    type: String,
    optional: true,
    autoValue: function() {
      if (!this.isSet) {
        return new Mongo.Collection.ObjectID()._str
      }
    }
  },
  "text": {
    type: String
  }
});

Tickers.attachSchema(
  new SimpleSchema({
    entries: { type: [TickerEntries] }
  })
);


if (Meteor.isClient) {

  Template.body.helpers({
    "tickers": function() {
      return Tickers.find({});
    }
  });

}

if (Meteor.isServer) {
  Meteor.startup(function () {
    // code to run on server at startup
  });
}

Ponownie zainicjuj dane i uruchom to samo polecenie w konsoli przeglądarki, a wszystko pozostanie bez zmian.

Sprawdź ten lub jakiekolwiek błędy pisarskie we własnych operacjach lub inne różnice, aby dowiedzieć się, dlaczego to nie działa dla Ciebie.

Sugerowałbym to zdecydowanie, ponieważ „zaczynanie od nowa” w ten sposób pokazuje oczekiwane zachowanie, a jeśli widzisz inne zachowanie, prawdopodobnie jest to problem z inną zainstalowaną wtyczką.

Ale generalnie to działa.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak działa hideIndex() w MongoDB?

  2. Importuj plik CSV za pomocą schematu Mongoose

  3. Jak działa operator aktualizacji $set w MongoDB

  4. Wdrażanie baz danych w chmurze za pomocą ClusterControl 1.6

  5. Jak korzystać z bibliotek innych firm w glassfish?