PyMongo kullanarak tüm koleksiyonların isimlerini nasıl bulabilir ve seçilen koleksiyondaki tüm alanları bulabilirsin? Seçilmiş koleksiyonun veritabanına ve adına sahibim. koleksiyonları bulmak içinPyMongo kullanarak tüm koleksiyonların isimleri nasıl bulunur?
cevap
kullanabilirsiniz: (Senaryo bir öğe üzerinde kullanıcı tıklama bu koleksiyondaki tüm alanları bulmalıyız zaman veritabanının kullanıcı girişi adı, açılır listede tüm koleksiyonlara ve gösteri bulmalıyız) collection_names()
- http://api.mongodb.org/python/current/api/pymongo/database.html#pymongo.database.Database.collection_names
Burada, tam olarak istediğiniz şeyi yapan bir komut dosyası var.
Veritabanındaki tüm koleksiyonların bir listesini görüntüler (bu durumda 'dh' veritabanı). Kullanıcı, seçim koleksiyonunu yazıyor ve komut dosyası, belgeleri ve alanları 2 düzeyden aşağı gösterir. Doğrudan bir Mongo sorgusuna kopyalanabilen Mongo giriş formatında görüntülenir. Ayrıca, sözlüklerin listeleri için ilk seviye alanlarını kontrol edecek ve bu alt alanları, parantezler alanıyla çevrili listelerde gösterecektir. [Subfield_in_list] '.
toplama adının opsiyonel komut satırı girişi (örn piton/yol/komut/scriptname.py koleksiyon_adı da vardır
import pymongo
from pymongo import Connection
mon_con = Connection('localhost', 27017)
mon_db = mon_con.dh
cols = mon_db.collection_names()
for c in cols:
print c
col = raw_input('Input a collection from the list above to show its field names: ')
collection = mon_db[col].find()
keylist = []
for item in collection:
for key in item.keys():
if key not in keylist:
keylist.append(key)
if isinstance(item[key], dict):
for subkey in item[key]:
subkey_annotated = key + "." + subkey
if subkey_annotated not in keylist:
keylist.append(subkey_annotated)
if isinstance(item[key][subkey], dict):
for subkey2 in item[subkey]:
subkey2_annotated = subkey_annotated + "." + subkey2
if subkey2_annotated not in keylist:
keylist.append(subkey2_annotated)
if isinstance(item[key], list):
for l in item[key]:
if isinstance(l, dict):
for lkey in l.keys():
lkey_annotated = key + ".[" + lkey + "]"
if lkey_annotated not in keylist:
keylist.append(lkey_annotated)
keylist.sort()
for key in keylist:
keycnt = mon_db[col].find({key:{'$exists':1}}).count()
print "%-5d\t%s" % (keycnt, key)
Sana kadar sonsuz seviyeleri aşağı yineleme için bir işlev yazabilirsiniz eminim orada hiçbir veri kaldı, ama bu hızlı ve kirli ve şimdi benim ihtiyaçlarına hizmet vermektedir.Ayrıca bir koleksiyonda belirli bir kayıt kümeleri için alanları göstermek için değiştirebilirsiniz.İyi yararlı bulmak umuyoruz
Bu çok Basit: , örn.
import pymongo
import json
if __name__ == '__main__':
client = pymongo.MongoClient("localhost", 27017, maxPoolSize=50)
d = dict((db, [collection for collection in client[db].collection_names()])
for db in client.database_names())
print json.dumps(d)
sonuç -> { "database1": [ "collection1", "collection2" ...], "database2": [...], ...}, gibi:
{"test": ["score", "test4", "test5", "test6", "test3", "test7", "user", "test2", "test8"],
"testdb": ["test5", "test8", "test2", "test9", "test3", "test4", "test6", "test"],
"local": ["startup_log"],
"stackoverflow": ["questions"]}
Tüm koleksiyon adlarını MongoDB veritabanımdan almak için her zaman bu yolu kullandım.
import pymongo
db_connect = pymongo.MongoClient('192.168.4.202', 20020)
database_name = 'MY_DATABASE_NAME'
database = db_connect[database_name]
collection = database.collection_names(include_system_collections=False)
for collect in collection:
print collect
- 1. MongongA'da bir koleksiyondaki koleksiyonların sayısı RMongo kullanarak
- 2. PyMongo kullanarak MongoDB veritabanını nasıl bırakırım?
- 3. iki farklı yapıdaki koleksiyonların
- 4. Groovy sınıfının tüm özellik isimleri nasıl alınır?
- 5. Tüm sınıf isimleri bir pakette nasıl alınır?
- 6. pymongo
- 7. Tüm veritabanı başvuruları nasıl bulunur?
- 8. Bir DocumentDB belgesindeki tüm koleksiyonların listesi nasıl alınır?
- 9. Koleksiyonların bulunduğu bir varlık nasıl kaydedilir?
- 10. Koleksiyonların Groovy harita yöntemi
- 11. jqgrid tüm ızgaraları al sütun isimleri
- 12. Sistemimde çalışan tüm web hizmetleri nasıl bulunur?
- 13. Java - tüm para birimi simgelerini nasıl bulunur?
- 14. Bir türün tüm varlıkları nasıl bulunur?
- 15. Tüm emlak listeleri verileri nasıl bulunur?
- 16. Grafikteki tüm köşe noktası noktaları nasıl bulunur?
- 17. Ruby'de bir String'in tüm döngüleri nasıl bulunur?
- 18. nasıl inşaat isimleri adları()
- 19. Cqlengine kullanarak karşı alanın toplamı nasıl bulunur?
- 20. Sadece bir dizinde C# kullanarak dosya isimleri nasıl edinilir?
- 21. Bir Oracle raporundaki tüm ay isimleri nasıl görüntülenir?
- 22. Lombok @Getter ve Koleksiyonların kopyaları
- 23. pymongo ubuntu alma başarısızlığı
- 24. Pencere ile vba kullanarak findwindow işlevini kullanarak pencere nasıl bulunur?
- 25. pymongo: Silinecek kayıtları zarif
- 26. Pymongo ile düzenli ifadeleri gerçekleştirme
- 27. Kukla hiera kullanarak değişken isimleri oluştur
- 28. NLTK WordNet Kullanarak Doğru İsimleri Bulma
- 29. P4V kullanarak Perforce'deki dosyalar nasıl bulunur?
- 30. PIL kitaplığı kullanarak subimage nasıl bulunur?
Mongo şemadan bağımsız olarak, alanların listesini nasıl bulursunuz? – Dogbert