sql >> データベース >  >> NoSQL >> MongoDB

MongoEnginePointFieldのデータをフォーマットする方法

    ここでエラーを再現できませんでした。使用しているmongoengineのバージョンを教えてください。

    簡単な例を実装する方法は次のとおりです。

    私の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
    

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

    私のDB上

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

    よろしく




    1. AzureRedisキャッシュ-GET呼び出しのタイムアウト

    2. mongodbレプリカセットホスト名変更エラー

    3. 多くの大きなJSONファイルをS3からMongoDBに直接効率的にインポートする方法

    4. PyMongoで.sortを使用する