MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Cách định dạng dữ liệu cho MongoEngine PointField

Tôi không thể tạo lại lỗi của bạn ở đây. Bạn có thể cho biết bạn đang làm việc với phiên bản mongoengine nào không?

Đây là cách tôi có thể triển khai một ví dụ đơn giản:

trên các mô hình của tôi.py

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

trên Django shell

$ 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]}

trên DB của tôi

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

Trân trọng




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Truy vấn trong một chức năng rút gọn bản đồ MongoDB

  2. Cập nhật nhiều phần tử có giá trị khác nhau trong Mongoose

  3. Cách bảo mật cơ sở dữ liệu nguồn mở của bạn với ClusterControl

  4. Django với cơ sở dữ liệu NoSQL

  5. Groovy không thể tìm thấy hàm tạo phù hợp?