MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Jak sformatować dane dla MongoEngine PointField

Nie mogłem odtworzyć tutaj twojego błędu. Czy możesz poinformować, z którą wersją mongoengine pracujesz?

Oto jak mogę zaimplementować prosty przykład:

na moich modelach.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

w powłoce 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]}

w mojej bazie danych

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

Pozdrawiam




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Tworzenie pliku w GridFs (MongoDb)

  2. Jak rekursywnie generować dokumenty Mongodb za pomocą sterownika mongocxx c++?

  3. Pozycyjna $ pracująca na różnych częściach tego samego dokumentu?

  4. Użyj dodatku Heroku mongolab z node.js

  5. Potoki agregujące MongoDB z połączonym obiektem