Apakah mongodb secara otomatis membuat koleksi?

Misalnya, sertakan kode berikut untuk terhubung ke penerapan MongoDB mandiri yang berjalan di localhost pada port

MongoClient mongoClient = MongoClients.create();
0

MongoClient mongoClient = MongoClients.create();

Untuk informasi lebih lanjut tentang menghubungkan ke penerapan MongoDB yang berjalan, lihat Hubungkan ke MongoDB

Mengakses Basis Data

Setelah Anda memiliki instance

MongoClient mongoClient = MongoClients.create();
_1 yang terhubung ke penerapan MongoDB, gunakan metodenya untuk mengakses database

Tentukan nama database ke metode

MongoClient mongoClient = MongoClients.create();
2. Jika database tidak ada, MongoDB membuat database saat Anda pertama kali menyimpan data untuk database tersebut

Contoh berikut mengakses database

MongoClient mongoClient = MongoClients.create();
4

MongoDatabase database = mongoClient.getDatabase("test");

Catatan

MongoClient mongoClient = MongoClients.create();
5 instance tidak dapat diubah

Akses Koleksi

Setelah Anda memiliki instance

MongoClient mongoClient = MongoClients.create();
5, gunakan metodenya untuk mengakses koleksi

Tentukan nama koleksi ke metode

MongoClient mongoClient = MongoClients.create();
7

Misalnya, menggunakan instance

MongoClient mongoClient = MongoClients.create();
_9, pernyataan berikut mengakses koleksi bernama
MongoDatabase database = mongoClient.getDatabase("test");
0

MongoCollection<Document> coll = database.getCollection("myTestCollection");

Catatan

MongoDatabase database = mongoClient.getDatabase("test");
1 instance tidak dapat diubah

Jika kumpulan tidak ada, MongoDB membuat kumpulan saat Anda pertama kali menyimpan data untuk kumpulan itu

Anda juga bisa secara eksplisit membuat koleksi dengan berbagai opsi, seperti menyetel ukuran maksimum atau aturan validasi dokumentasi

Buat Koleksi Secara Eksplisit

Driver MongoDB menyediakan metode untuk membuat koleksi secara eksplisit. Saat Anda membuat koleksi secara eksplisit, Anda dapat menentukan berbagai opsi koleksi, seperti ukuran maksimum atau aturan validasi dokumentasi, dengan kelas

MongoDatabase database = mongoClient.getDatabase("test");
3. Jika Anda tidak menentukan opsi ini, Anda tidak perlu membuat koleksi secara eksplisit karena MongoDB membuat koleksi baru saat pertama kali menyimpan data untuk koleksi

Koleksi Tertutup

Misalnya, operasi berikut membuat koleksi yang dibatasi berukuran hingga 1 megabita

database.createCollection("cappedCollection",
          new CreateCollectionOptions().capped(true).sizeInBytes(0x100000));

Validasi Dokumen

MongoDB menyediakan kemampuan untuk memvalidasi dokumen selama pembaruan dan penyisipan. Aturan validasi ditentukan berdasarkan per koleksi menggunakan

MongoDatabase database = mongoClient.getDatabase("test");
4, yang mengambil dokumen filter yang menentukan aturan atau ekspresi validasi

ValidationOptions collOptions = new ValidationOptions().validator(
        Filters.or(Filters.exists("email"), Filters.exists("phone")));
database.createCollection("contacts",
        new CreateCollectionOptions().validationOptions(collOptions));

Dapatkan Daftar Koleksi

Anda bisa mendapatkan daftar koleksi dalam database menggunakan metode ini

for (String name : database.listCollectionNames()) {
    System.out.println(name);
}

Jatuhkan Koleksi

Anda dapat menjatuhkan koleksi dengan menggunakan metode ini

MongoCollection<Document> collection = database.getCollection("contacts");
collection.drop();

Kekekalan

MongoClient mongoClient = MongoClients.create();
5 dan
MongoDatabase database = mongoClient.getDatabase("test");
1 instance tidak dapat diubah. Untuk membuat instance baru dari instance yang ada yang memiliki nilai properti berbeda, seperti read concern, read preference, dan write concern, kelas
MongoClient mongoClient = MongoClients.create();
5 dan
MongoDatabase database = mongoClient.getDatabase("test");
1 menyediakan berbagai metode

Untuk mengetahui detailnya, lihat Operasi Baca dan Operasi Tulis

CodecRegistry

Kelebihan metode

MongoCollection<Document> coll = database.getCollection("myTestCollection");
_7 memungkinkan klien untuk menentukan kelas yang berbeda untuk mewakili dokumen BSON. Misalnya, pengguna CRUD API lama dari 2. x driver series mungkin ingin terus menggunakan
MongoCollection<Document> coll = database.getCollection("myTestCollection");
8 untuk memudahkan transisi ke CRUD API baru

// Pass BasicDBObject.class as the second argument
MongoCollection<BasicDBObject> collection = database.getCollection("mycoll", BasicDBObject.class);

// insert a document
BasicDBObject document = new BasicDBObject("x", 1)
collection.insertOne(document);
document.append("x", 2).append("y", 3);

// replace a document
collection.replaceOne(Filters.eq("_id", document.get("_id")), document);

// find documents
List<BasicDBObject> foundDocument = collection.find().into(new ArrayList<BasicDBObject>());

Ada dua persyaratan yang harus dipenuhi untuk setiap kelas yang digunakan dengan cara ini

  • a
    MongoCollection<Document> coll = database.getCollection("myTestCollection");
    
    _9 karena harus terdaftar di
    MongoDatabase database = mongoClient.getDatabase("test");
    
    1
    database.createCollection("cappedCollection",
              new CreateCollectionOptions().capped(true).sizeInBytes(0x100000));
    
    1
  • MongoCollection<Document> coll = database.getCollection("myTestCollection");
    
    _9 harus yang mengenkode dan mendekode dokumen BSON lengkap (dan bukan hanya, misalnya, nilai BSON tunggal seperti Int32)

Secara default,

MongoDatabase database = mongoClient.getDatabase("test");
_1 dikonfigurasi dengan
MongoCollection<Document> coll = database.getCollection("myTestCollection");
9s untuk tiga kelas

  • database.createCollection("cappedCollection",
              new CreateCollectionOptions().capped(true).sizeInBytes(0x100000));
    
    _5
  • MongoCollection<Document> coll = database.getCollection("myTestCollection");
    
    _8
  • database.createCollection("cappedCollection",
              new CreateCollectionOptions().capped(true).sizeInBytes(0x100000));
    
    _7

Namun, aplikasi bebas mendaftarkan implementasi

MongoCollection<Document> coll = database.getCollection("myTestCollection");
_9 untuk kelas lain dengan menyesuaikan
database.createCollection("cappedCollection",
          new CreateCollectionOptions().capped(true).sizeInBytes(0x100000));
1. Instance
database.createCollection("cappedCollection",
          new CreateCollectionOptions().capped(true).sizeInBytes(0x100000));
_1 baru dapat dikonfigurasi pada tiga level

  • Dalam
    MongoClient mongoClient = MongoClients.create();
    
    1 melalui
    ValidationOptions collOptions = new ValidationOptions().validator(
            Filters.or(Filters.exists("email"), Filters.exists("phone")));
    database.createCollection("contacts",
            new CreateCollectionOptions().validationOptions(collOptions));
    
    2
  • Dalam
    MongoClient mongoClient = MongoClients.create();
    
    5 melalui metode
    ValidationOptions collOptions = new ValidationOptions().validator(
            Filters.or(Filters.exists("email"), Filters.exists("phone")));
    database.createCollection("contacts",
            new CreateCollectionOptions().validationOptions(collOptions));
    
    4
  • Dalam
    MongoDatabase database = mongoClient.getDatabase("test");
    
    _1 melalui metode
    ValidationOptions collOptions = new ValidationOptions().validator(
            Filters.or(Filters.exists("email"), Filters.exists("phone")));
    database.createCollection("contacts",
            new CreateCollectionOptions().validationOptions(collOptions));
    
    4

Pertimbangkan kasus encoding dan decoding instance dari kelas

ValidationOptions collOptions = new ValidationOptions().validator(
        Filters.or(Filters.exists("email"), Filters.exists("phone")));
database.createCollection("contacts",
        new CreateCollectionOptions().validationOptions(collOptions));
7. Driver Java secara default menyandikan instance
ValidationOptions collOptions = new ValidationOptions().validator(
        Filters.or(Filters.exists("email"), Filters.exists("phone")));
database.createCollection("contacts",
        new CreateCollectionOptions().validationOptions(collOptions));
7 menggunakan pengurutan byte yang tidak kompatibel dengan driver MongoDB lainnya, dan mengubah default akan sangat berbahaya. Namun aplikasi baru yang memerlukan interoperabilitas di beberapa driver dapat mengubah default tersebut, dan mereka dapat melakukannya dengan
database.createCollection("cappedCollection",
          new CreateCollectionOptions().capped(true).sizeInBytes(0x100000));
1

Bagaimana koleksi dibuat di MongoDB?

Di MongoDB, Anda tidak perlu membuat koleksi. MongoDB membuat koleksi secara otomatis, saat Anda memasukkan beberapa dokumen .

Apakah luwak secara otomatis membuat koleksi?

Mongoose secara default tidak membuat koleksi apa pun untuk model di database hingga dokumen apa pun dibuat . Metode createCollection() digunakan untuk membuat koleksi secara eksplisit.

Bidang mana yang secara otomatis dibuat oleh MongoDB?

Secara arsitektural, secara default bidang_id adalah ObjectID, salah satu jenis BSON MongoDB. ObjectID adalah kunci utama untuk dokumen yang disimpan dan dihasilkan secara otomatis saat membuat dokumen baru dalam koleksi.

Apakah MongoDB memiliki koleksi?

MongoDB menyimpan dokumen dalam koleksi . Koleksi analog dengan tabel dalam database relasional.