Untuk membuat koleksi di MongoDB, gunakan objek database dan tentukan nama koleksi yang ingin Anda buat
MongoDB akan membuat koleksi jika tidak ada
Contoh
Buat koleksi yang disebut "pelanggan"
impor pymongo
klienku = pymongo. MongoClient["mongodb. // localhost. 27017/"]
mydb = klienku["databaseku"]
mycol = mydb["pelanggan"]
Jalankan contoh »Penting. Di MongoDB, koleksi tidak dibuat hingga mendapatkan konten
MongoDB menunggu hingga Anda memasukkan dokumen sebelum benar-benar membuat koleksi
Periksa apakah Koleksi Ada
Ingat. Di MongoDB, koleksi tidak dibuat sampai mendapatkan konten, jadi jika ini adalah pertama kalinya Anda membuat koleksi, Anda harus menyelesaikan bab berikutnya [membuat dokumen] sebelum Anda memeriksa apakah koleksi tersebut ada.
Saya punya fungsi, mencoba mendapatkan nilai spesifik dari koleksi pengaturan di MongoDB. Penanda untuk objek pengaturan, yang berisi nilai pengaturan, dalam kumpulan pengaturan adalah {'pengaturan'. 'pengaturan'}. Skemanya adalah
collection:setting
|--object
|--{'settings':'settings'}
|--{'valueA':'valueA'}
|--...
Masalahnya adalah ketika saya pertama kali menanyakan objek pengaturan, koleksi 'pengaturan' tidak ada. Jadi,
exports.getInstruments = function [callback] {
db.collection["settings", function[error, settings] {
settings.find[{ "settings" : "settings" }], [function[err, doc] {
callback[doc.instruments];
}];
]];
}
_hanya hang dan panggilan balik tidak dipanggil. Jika koleksi tidak ada, saya harus mengembalikan "" atau tidak terdefinisi, kalau tidak – dok. instrumen
Solusi terbaik
Ada fungsi
exports.getInstruments = function [callback] {
db.collection["settings", function[error, settings] {
settings.find[{ "settings" : "settings" }], [function[err, doc] {
callback[doc.instruments];
}];
]];
}
_9 yang dapat Anda gunakan untuk menentukan apakah akan mengeksekusi kode yang hang atau tidak> db.getCollection['hello'].exists[]
null
> db.getCollection['world'].exists[]
{ "name" : "testdb.world" }
Solusi Terkait
Mongodb – Cara menanyakan "bukan nol" di Mongo
Ini akan mengembalikan semua dokumen dengan kunci yang disebut "URL GAMBAR", tetapi mungkin masih memiliki nilai nol
db.mycollection.find[{"IMAGE URL":{$exists:true}}];
_Ini akan mengembalikan semua dokumen dengan kunci yang disebut "URL GAMBAR" dan nilai bukan nol
db.mycollection.find[{"IMAGE URL":{$ne:null}}];
Juga, menurut dokumen, $exists saat ini tidak dapat menggunakan indeks, tetapi $ne bisa
Sunting. Menambahkan beberapa contoh karena minat pada jawaban ini
Mengingat sisipan ini
db.test.insert[{"num":1, "check":"check value"}];
db.test.insert[{"num":2, "check":null}];
db.test.insert[{"num":3}];
_Ini akan mengembalikan ketiga dokumen
db.test.find[];
Ini hanya akan mengembalikan dokumen pertama dan kedua
db.test.find[{"check":{$exists:true}}];
_Ini hanya akan mengembalikan dokumen pertama
db.test.find[{"check":{$ne:null}}];
_Ini hanya akan mengembalikan dokumen kedua dan ketiga
db.test.find[{"check":null}]
Node. js – Periksa secara sinkron apakah file/direktori ada di Node. js
Jawaban atas pertanyaan ini telah berubah selama bertahun-tahun. Jawaban saat ini ada di atas, diikuti oleh berbagai jawaban selama bertahun-tahun dalam urutan kronologis
Jawaban Saat Ini
Kamu bisa memakai
exports.getInstruments = function [callback] {
db.collection["settings", function[error, settings] {
settings.find[{ "settings" : "settings" }], [function[err, doc] {
callback[doc.instruments];
}];
]];
}
_0Itu sudah usang selama beberapa tahun, tetapi tidak lagi. Dari dokumen
Perhatikan bahwa
_1 sudah usang, tetapi> db.getCollection['hello'].exists[] null > db.getCollection['world'].exists[] { "name" : "testdb.world" }
0 tidak. [Parameter callback ke> db.getCollection['hello'].exists[] null > db.getCollection['world'].exists[] { "name" : "testdb.world" }
_1 menerima parameter yang tidak konsisten dengan Node. panggilan balik js.> db.getCollection['hello'].exists[] null > db.getCollection['world'].exists[] { "name" : "testdb.world" }
0 tidak menggunakan panggilan balik. ]> db.getCollection['hello'].exists[] null > db.getCollection['world'].exists[] { "name" : "testdb.world" }
Saya perlu memeriksa apakah ada koleksi di database tertentu dan membuatnya jika tidak. saya tahu itu
db.createCollection[collName, {strict:true}, function[error, collection]]
memeriksa keberadaan koleksi
collName
sebelum membuatnya dan menyetel objekerror
. tapi saya perlu fungsi independen untuk memeriksanya
Di MongoDB 3. 0 dan yang lebih baru, Anda harus menjalankan perintah untuk mencantumkan semua koleksi dalam database
use test;
db.runCommand[ { listCollections: 1 } ];
Meskipun kueri system.namespaces
akan tetap berfungsi saat Anda menggunakan mesin penyimpanan default [MMAPv1], ini tidak dijamin berfungsi untuk mesin lain, seperti WiredTiger