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

モンゴジオロケーションデータのMeteorシンプルスキーマ

    うーん、ジオコードを保存するプロセスの解決策を正確に知りません。ただし、lngとlatを保存する場合は、プレフィックスを渡す必要があります。なんで?ジオコードにはさまざまな検証範囲があります。緯度は-90から90まで、経度は-180から180までしか利用できません。プレフィックスを保存しない場合、どの座標がどちらであるかをどのように確認しますか?私がいつか間違ったことをしたもう1つのヒントは、経度、緯度の順序で座標を保存することです。

    私が使用しているスキーマは次のようになります:

    GeocoordsSchema = new SimpleSchema({
      lng: {
        type : Number,
        decimal: true,
        min: -180,
        max: 180
      }, 
      lat: {
        type : Number,
        decimal: true,
        min: -90,
        max: 90
      }
    });
    

    次に、ネストされたスキーマを作成します。 LocationSchemaでGeocoodrsSchemaを拡張し、属性を追加するだけです。

    LocationSchema = new SimpleSchema({
      type : {
        type : String,
        autoValue: function() {
          return "Point";
        }
      },
      coordinate: {
        type: GeocoordsSchema 
      }
    });
    

    LocationSchemaの配列が必要な場合は、スキーマを[]角かっこで囲むことができます。

    BeachesSchema = new SimpleSchema({
      loc: {
        type: [LocationSchema]
      }
    });
    

    私はテストしていませんが、それが私がさまざまなスキーマを作成してネストする方法です。このソリューションには、latとlngの識別子が必要です。データにプレフィックスを付けたくないのはなぜですか?



    1. MongoDBグループとidをキーとして合計

    2. SpringデータとmongoDB-継承と@DBRef

    3. MongoidGroupByまたはMongoDbgroupby in rails

    4. MongoDb集計$matchエラー:引数は集計パイプライン演算子である必要があります