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

Cara memformat data untuk MongoEngine PointField

Saya tidak dapat mereproduksi kesalahan Anda di sini. Bisakah Anda memberi tahu versi mongoengine mana yang Anda gunakan?

Inilah cara saya menerapkan contoh sederhana:

di models.py saya

class PointFieldExample(Document):

    point = PointField()
    name = StringField()

    def toJSON(self):
       pfeJSON = {}
       pfeJSON['id'] = str(self.id)
       pfeJSON['point'] = self.point
       pfeJSON['name'] = str(self.name)
       return pfeJSON

pada cangkang Django

$ python manage.py shell
>>> from mongoengine import *
>>> from myAwesomeApp.app.models import PointFieldExample

>>> pfe = PointFieldExample()
>>> pfe.point = 'random invalid content'
>>> pfe.toJSON()
{'id': 'None', 'name': 'None', 'point': 'random invalid content'}
>>> pfe.save()
ValidationError: ValidationError (PointFieldExample:None) (PointField can only accept lists of [x, y]: ['point'])

>>> pfe.point = [-15, -47]
>>> pfe.save()
<PointFieldExample: PointFieldExample object>

>>> pfe.toJSON()
{'id': '5345a51dbeac9e0c561b1892', 'name': 'None', 'point': [-15, -47]}

di DB saya

> db.point_field_example.findOne()
{
    "_id" : ObjectId("5345a51dbeac9e0c561b1892"),
    "point" : {
        "type" : "Point",
        "coordinates" : [ 
            -47, 
            -15
        ]
    }
}

Salam




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mengapa driver MongoDB Node membuat koneksi yang tidak diinginkan?

  2. Mongodb -- menyertakan atau mengecualikan elemen tertentu dengan c# driver

  3. Kondisi pertandingan dan tanggal terbaru dari array

  4. Bagaimana cara menetapkan batas waktu pada kueri Mongoose?

  5. Mengapa menghubungkan ke MongoDB dari Node.js lambat