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

menggunakan kunci sebagai nilai di Mongoengine

Sudahkah Anda mempertimbangkan untuk menggunakan PyMongo secara langsung daripada menggunakan Mongoengine? Mongoengine dirancang untuk mendeklarasikan dan memvalidasi skema untuk dokumen Anda, dan menyediakan banyak alat dan kemudahan untuk itu. Jika dokumen Anda akan bervariasi, saya tidak yakin Mongoengine adalah pilihan yang tepat untuk Anda.

Namun, jika Anda memiliki beberapa bidang yang sama di semua dokumen, dan kemudian setiap dokumen memiliki beberapa kumpulan bidang khusus untuk dirinya sendiri, Anda dapat menggunakan DictField Mongoengine . Kelemahan dari ini adalah bahwa kunci tidak akan menjadi "tingkat atas", misalnya:

class UserThings(Document):
    # you can look this document up by username
    username = StringField()

    # you can store whatever you want here
    things = DictField()

dcrosta_things = UserThings(username='dcrosta')
dcrosta_things.things['foo'] = 'bar'
dcrosta_things.things['bad'] = 'quack'
dcrosta_things.save()

Hasil dalam dokumen MongoDB seperti:

{ _id: ObjectId(...),
  _types: ["UserThings"],
  _cls: "UserThings",
  username: "dcrosta",
  things: {
    foo: "bar",
    baz: "quack"
  }
}

Sunting: Saya juga harus mencatat, ada pekerjaan yang sedang berlangsung di cabang pengembangan Mongoengine untuk dokumen "dinamis", di mana atribut pada contoh dokumen Python akan disimpan ketika model disimpan. Lihat https://github.com/hmarr/mongoengine/pull/112 untuk detail dan sejarah.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. mgo $unwind hasil agregasi ke jenis elemen Tidak Dikenal (0x2E)

  2. Bagaimana cara menyimpan array objek ke DB luwak hanya dengan satu panggilan?

  3. Cara mengecualikan beberapa bidang dari dokumen

  4. Bagaimana cara menyembunyikan _id dari Agregasi?

  5. Balas informasi kepala dan tambahkan array ekstrak ke hasil yang sama