File: geo9.js

package info (click to toggle)
mongodb 1%3A2.4.10-5
  • links: PTS, VCS
  • area: main
  • in suites: jessie-kfreebsd
  • size: 82,464 kB
  • sloc: cpp: 740,225; ansic: 152,098; sh: 13,820; python: 11,864; makefile: 1,012; perl: 922; pascal: 617; java: 452; lisp: 222; asm: 174
file content (28 lines) | stat: -rw-r--r-- 751 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28

t = db.geo9
t.drop();

t.save( { _id : 1 , a : [ 10 , 10 ] , b : [ 50 , 50 ] } )
t.save( { _id : 2 , a : [ 11 , 11 ] , b : [ 51 , 52 ] } )
t.save( { _id : 3 , a : [ 12 , 12 ] , b : [ 52 , 52 ] } )

t.save( { _id : 4 , a : [ 50 , 50 ] , b : [ 10 , 10 ] } )
t.save( { _id : 5 , a : [ 51 , 51 ] , b : [ 11 , 11 ] } )
t.save( { _id : 6 , a : [ 52 , 52 ] , b : [ 12 , 12 ] } )

t.ensureIndex( { a : "2d" } )
t.ensureIndex( { b : "2d" } )

function check( field ){
    var q = {}
    q[field] = { $near : [ 11 , 11 ] }
    arr = t.find( q ).limit(3).map( 
        function(z){
            return Geo.distance( [ 11 , 11 ] , z[field] );
        }
    );
    assert.eq( 2 * Math.sqrt( 2 ) , Array.sum( arr ) , "test " + field );
}

check( "a" )
check( "b" )