mongoengine教程(2)文档模式
在MongoDB中一个文档(document)与关系型数据库中的一行(row)相似;文档保存在集合(collection)中,行保存在表(table)中。 定义文档的模式 与django类似,要定义一个文档模式只需要创建一个类继承自 Document,并添加一些 Field 对象。 from mongoengine impo
在MongoDB中一个文档(document)与关系型数据库中的一行(row)相似;文档保存在集合(collection)中,行保存在表(table)中。
定义文档的模式
与django类似,要定义一个文档模式只需要创建一个类继承自 Document,并添加一些 Field 对象。
from mongoengine import * import datetime class Page(Document): title = StringField(max_length=200, required=True) date_modified = DateTimeField(default=datetime.datetime.now)
如上定义了一个文档模式具有 title和date_modified 两个字段。
同时MongoDB本身就是无模式的,因此我们还可以创建动态的文档模式。它可以在添加数据时为不同的数据设置不同的字段。
class Page(DynamicDocument): title = StringField(max_length=200, required=True)
添加数据:
page = Page(title='Using MongoEngine') page.tags = ['mongodb', 'mongoengine'] page.save()
文档字段
文档字段(Field)不是必需的,但是使用它来进行数据验证、设置默认值等操作会比较方便。
MongoEngine提供了如下这些类型的Field:
- BinaryField
- BooleanField
- ComplexDateTimeField
- DateTimeField
- DecimalField
- DictField
- DynamicField
- EmailField
- EmbeddedDocumentField
- FileField
- FloatField
- GenericEmbeddedDocumentField
- GenericReferenceField
- GeoPointField
- ImageField
- IntField
- ListField
- MapField
- ObjectIdField
- ReferenceField
- SequenceField
- SortedListField
- StringField
- URLField
- UUIDField
文档之间引用关系
在关系型数据库中多个表可以使用外键进行关联。然而MongoDB是无模式的,因此想要达到这样的效果就这能在应用程序中自己手动的进行关联了。
不过还好,使用MongoEngine的ReferenceField可以很方便的实现。
class User(Document): name = StringField() class Page(Document): content = StringField() author = ReferenceField(User) john = User(name="John Smith") john.save() post = Page(content="Test Page") post.author = john post.save()
一对多的关系
对于一对多的关系可以使用ListField来保存一个ReferenceField列表。在进行查询操作是需要传入一个实例对象。
class User(Document): name = StringField() class Page(Document): content = StringField() authors = ListField(ReferenceField(User)) bob = User(name="Bob Jones").save() john = User(name="John Smith").save() Page(content="Test Page", authors=[bob, john]).save() Page(content="Another Page", authors=[john]).save() # Find all pages Bob authored Page.objects(authors__in=[bob])
引用对象的删除操作
MongoDB默认不会检查数据的完整性,因此在删除一个对象是就需要自己手动的处理引用了该对象的其他对象。
同样的MongoEngine也提供了一样的功能。ReferenceField有一个 reverse_delete_rule 参数可以进行设置。它的取值如下:
- mongoengine.DO_NOTHING:默认就是这个值,它不会进行任何操作。
- mongoengine.DENY:如果该对象还被其他对象引用,则拒绝删除。
- mongoengine.NULLIFY:将其他对象对该对象的引用字段设为null。
- mongoengine.CASCADE:将引用了该对象的其他对象也删除掉。
- mongoengine.PULL:移除对该对象的引用。
索引
与django的Model相似,MongoEngine的Document也可以在meta属性中设置索引。
class Page(Document): title = StringField() rating = StringField() meta = { 'indexes': ['title', ('title', '-rating')] }
meta中的indexes可以是一个列表,也可以是一个字典。
原文地址:mongoengine教程(2)——文档模式, 感谢原作者分享。

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Bagaimana untuk menguasai penyesuaian bootstrap dan penggunaan komponen termasuk: 1. Gunakan pembolehubah CSS dan preprocessor SASS untuk penyesuaian gaya; 2. Memahami dan mengubahsuai struktur dan tingkah laku komponen. Melalui kaedah ini, antara muka pengguna yang unik boleh dibuat untuk meningkatkan respons dan pengalaman pengguna laman web.

Artikel ini memperkenalkan cara mengkonfigurasi MongoDB pada sistem Debian untuk mencapai pengembangan automatik. Langkah -langkah utama termasuk menubuhkan set replika MongoDB dan pemantauan ruang cakera. 1. Pemasangan MongoDB Pertama, pastikan MongoDB dipasang pada sistem Debian. Pasang menggunakan arahan berikut: SudoaptDateSudoaptInstall-ImongoDB-Org 2. Mengkonfigurasi set replika replika MongoDB MongoDB Set memastikan ketersediaan dan kelebihan data yang tinggi, yang merupakan asas untuk mencapai pengembangan kapasiti automatik. Mula MongoDB Service: sudosystemctlstartmongodsudosys

Huobi ke Panduan Pemindahan Binance: Selamat dan mudah memindahkan aset crypto anda Banyak pelabur menggunakan Huobi dan Binance pada masa yang sama. Artikel ini akan membimbing anda bagaimana untuk memindahkan aset crypto dengan selamat di Huobi (HTX), seperti Trump dan USDT, ke platform Binance. Binance adalah popular untuk keselamatan yang tinggi, mata wang yang kaya dan pasangan perdagangan, dan jumlah dagangan terkemuka di dunia. Kelebihan Binance Exchange: Jumlah dagangan nombor satu di dunia, menyumbang 50% daripada pasaran global; Tutorial ini akan mengambil Trump dan USDT sebagai contoh

Artikel ini menerangkan cara membina pangkalan data MongoDB yang sangat tersedia pada sistem Debian. Kami akan meneroka pelbagai cara untuk memastikan keselamatan data dan perkhidmatan terus beroperasi. Strategi Utama: Replicaset: Replicaset: Gunakan replika untuk mencapai redundansi data dan failover automatik. Apabila nod induk gagal, set replika secara automatik akan memilih nod induk baru untuk memastikan ketersediaan perkhidmatan yang berterusan. Sandaran dan Pemulihan Data: Secara kerap Gunakan perintah Mongodump untuk membuat sandaran pangkalan data dan merumuskan strategi pemulihan yang berkesan untuk menangani risiko kehilangan data. Pemantauan dan penggera: Menyebarkan alat pemantauan (seperti Prometheus, Grafana) untuk memantau status MongoDB dalam masa nyata, dan

Tidak mustahil untuk melihat kata laluan MongoDB secara langsung melalui Navicat kerana ia disimpan sebagai nilai hash. Cara mendapatkan kata laluan yang hilang: 1. Tetapkan semula kata laluan; 2. Periksa fail konfigurasi (mungkin mengandungi nilai hash); 3. Semak Kod (boleh kata laluan Hardcode).

Panduan Perdagangan Binance C2C: Cara yang selamat dan mudah untuk mendepositkan dan mengeluarkan wang dalam cryptocurrency. Apa itu Binance C2C? Binance C2C adalah perkhidmatan perdagangan cryptocurrency pengguna kepada pengguna yang disediakan oleh platform Binance, menyediakan pengguna dengan saluran pertukaran mata wang cryptocurrency dan fiat yang mudah. Dilancarkan pada tahun 2019, perkhidmatan ini menyokong pelbagai kriptografi dan transaksi mata wang fiat melalui model dagangan peer-to-peer, dan menyediakan peningkatan keselamatan dan pelbagai ciri. Berbanding dengan perdagangan OTC tradisional, platform Binance C2C mengesahkan kedua -dua pihak kepada transaksi dan memberikan sokongan lengkap.

Binance Hodl Airdrop Guide: Dapatkan Token Percuma Dengan Mudah! Binance telah melancarkan mekanisme udara baru - Binance Hodl Airdrop, yang membolehkan anda mendapatkan udara duit syiling baru rawak dengan hanya memegang produk pendapatan BNB! Artikel ini akan menerangkan Binance Hodl Airdrop secara terperinci, termasuk pertanyaan sejarah, langkah penyertaan dan penilaian risiko. Apakah Airdrop Binance Hodl? Binance HODL Airdrop adalah mata wang yang berkala mata wang baru, dan menggunakan mekanisme "snapshot mundur" untuk mengira pegangan dan ganjaran udara produk pembuatan mata wang BNB. Anda hanya perlu memegang produk pendapatan semasa atau biasa BNB dalam tempoh masa tertentu sebelum pengumuman acara untuk menerima ganjaran mata wang baru dari Binance. Harus diingat bahawa apabila anda melihat pengumuman AirDrop, peluang untuk mengambil bahagian adalah deadlined kerana sistem telah menyelesaikan snapshot. Perlu mengambil bahagian

MONGODB dan Pangkalan Data Relasi: Perbandingan mendalam Artikel ini akan meneroka dengan mendalam perbezaan antara pangkalan data NoSQL MongoDB dan pangkalan data hubungan tradisional (seperti MySQL dan SQLServer). Pangkalan data relasi menggunakan struktur jadual baris dan lajur untuk menganjurkan data, manakala MongoDB menggunakan model berorientasikan dokumen yang fleksibel untuk memenuhi keperluan aplikasi moden. Terutamanya membezakan struktur data: pangkalan data relasi menggunakan jadual skema yang telah ditetapkan untuk menyimpan data, dan hubungan antara jadual ditubuhkan melalui kunci utama dan kunci asing; MongoDB menggunakan dokumen BSON seperti JSON untuk menyimpannya dalam koleksi, dan setiap struktur dokumen boleh diubah secara bebas untuk mencapai reka bentuk bebas corak. Reka bentuk seni bina: pangkalan data relasi perlu skema tetap yang telah ditetapkan; MongoDB menyokong
