sql >> Database teknologi >  >> NoSQL >> MongoDB

Sådan formateres data til MongoEngine PointField

Jeg kunne ikke gengive din fejl her. Kan du oplyse, hvilken version af mongoengine du arbejder med?

Her er hvordan jeg kunne implementere et simpelt eksempel:

på mine models.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

på 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]}

på min DB

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

Med venlig hilsen




  1. Hvordan henter man kun udvalgte mongo-id'er ved hjælp af spring data mongorepository-metoden?

  2. Opdater flere felter i et MongoDB-dokument

  3. Forespørg MongoDB efter værdi, når overordnet nøgle er ukendt

  4. MongoDB bruger COLLSCAN, når der kun returneres _id