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

2dsphereインデックスフィールドに対するマングースnear(...)クエリが有効な結果を返さない

    これはマングースのバグのようです 。

    クエリをGeoJSONを使用するように変更します 座標ペアの代わりにオブジェクト 、そのようなもの:

    qry.where('loc').near({
        center: {
            type: 'Point',
            coordinates: search.loc
        },
        maxDistance: search.distance * 1000
    });
    

    結果は次のクエリになります:

    Mongoose: models.find({ loc: { '$near': { 
            '$maxDistance': 1,
            '$geometry': { type: 'Point', coordinates: [ 10, -20 ] } } } 
        }) { fields: undefined }  
    

    検索は成功しました。

    ドキュメントには、座標ペアを使用してクエリが明示的に示されています:

    query.where('loc').near({ center: [10, 10], maxDistance: 5 });
    

    ただし、これは機能しないようです。例は次のようになります。

    query.where('loc').near({ center: { coordinates: [10, 10], type: 'Point' }, maxDistance: 5 });
    



    1. UnhandledPromiseRejectionWarning:MongooseServerSelectionError

    2. Rails、Sidekiq-Redis NOAUTH

    3. RedisがLaravel5.1でブロードキャストイベントを取得しない

    4. MongoDBで日付をフォーマットする方法