MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Tarik entri dari array melalui Meteor

Untuk aplikasi meteor dasar, saya sebut "tempat tidur" ini. Jika Anda membuat proyek baru dan hanya menentukan koleksi, maka $pull operator bekerja seperti yang diharapkan:

Konsol:

meteor create tickets
cd tickets
meteor run

Kemudian buka shell dan masukkan data Anda:

meteor mongo

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

Kemudian buat saja beberapa kode dan template dasar:

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>

Aplikasi harus berjalan dengan baik, jadi di konsol browser Anda lakukan .update() (menjorok untuk membaca):

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

Dan item dihapus dari entri dan halaman disegarkan tanpa item. Jadi semuanya hilang, seperti yang diharapkan.

Bahkan menambahkan paket SimpleSchema dan Collection2, tidak ada bedanya di sini:

 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
  });
}

Inisialisasi ulang data dan jalankan perintah yang sama di konsol browser dan semuanya tetap sama.

Periksa ini atau kesalahan pengetikan apa pun dalam operasi Anda sendiri atau perbedaan lain untuk petunjuk mengapa ini tidak berhasil untuk Anda.

Saya sangat menyarankan ini, karena "mulai baru" seperti ini menunjukkan perilaku yang diharapkan, dan jika Anda melihat perilaku yang berbeda maka kemungkinan ada masalah dengan plugin lain yang telah Anda instal.

Tapi secara umum, ini berhasil.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Tutorial MongoDB untuk Pemula (Panduan Lengkap) – Pelajari MongoDB dalam 15 Menit

  2. MongoDB tidak dapat memulai server:Mesin penyimpanan default 'wiredTiger' tidak tersedia dengan build mongod ini

  3. Bagaimana saya bisa menulis agregasi tanpa melebihi ukuran dokumen maksimum?

  4. Bagaimana cara menggunakan mongodb dengan elektron?

  5. Apa keuntungan menggunakan database bebas skema seperti MongoDB dibandingkan dengan database relasional?