2016-07-05 8 views
0

ロケーションログをコレクションに保存しようとしています。マングーススキーマは以下のように定義される -Mongooseを使ってMongoDBに文書を保存する際に、フィールドの順序を保持する方法はありますか?

{ user: { type: String, required: true }, location: { longitude: {type: Number}, latitude: type: { type: Number}}

我々は我々のコードによる場所のログ(使用量は以下の通りである)を保存 - 3T MongoChefを介してデータベースに照会するには

Model.findOneAndUpdate({user: 1}, 
    {location:{longitude: 9.0, latitude: 10.0}}, 
    function(err) {...}); 

を、私たちがいることを観察します位置オブジェクトが保存される順番が一貫していないため、ジオロケーションの誤ったインデックス付けが行われます。たとえ2人のユーザーが同じ場所にいるとしても、キーの順序が(latitude, longitude)の形式の結果しか得られません。

答えて

0

これはバグではないかどうかわかりません。しかし、あなたはpresaveフックの場所を再アセンブルすることができます:

schema.pre('save', function(next) { 
    this.location = { 
    latitude: this.location.latitude, 
    longitude: this.location.longitude, 
    }; 

    next(); 
}); 

希望します。

関連する問題