如何在mongodb geoNear命令中添加LIKE参数

如何在mongodb geoNear命令中添加LIKE参数,mongodb,mongodb-php,Mongodb,Mongodb Php,我在找 db.runCommand({ geoNear:“用户”, 近:[56,11], 最大距离:100/6387, 距离乘数:6387, 查询:{“城市”:/^bos/} }) 所以在这里,我试图获得以距离(优先级)和城市名称开头的结果 当我们在mysql中进行类似的查询调用时 我无法得到结果 请告诉我如何才能做到这一点?将“查询”参数添加到命令中应该会得到您要查找的结果 查询可能无法工作的一个可能原因是正则表达式区分大小写,除非使用“i”标志指定为不区分大小写 例如: > db.pl

我在找

db.runCommand({ geoNear:“用户”, 近:[56,11], 最大距离:100/6387, 距离乘数:6387, 查询:{“城市”:/^bos/} })

所以在这里,我试图获得以距离(优先级)和城市名称开头的结果

当我们在mysql中进行类似的查询调用时 我无法得到结果

请告诉我如何才能做到这一点?

将“查询”参数添加到命令中应该会得到您要查找的结果

查询可能无法工作的一个可能原因是正则表达式区分大小写,除非使用“i”标志指定为不区分大小写

例如:

> db.places.save({_id:1, city:"CityA", loc:[56.01,11.01]})
> db.places.save({_id:2, city:"CityB", loc:[56.02,11.02]})
> db.places.ensureIndex({loc:"2d"})
> db.runCommand({ geoNear: "places", near:[56,11], maxDistance:1, distanceMultiplier:1, query: { "city": /^city/} })
{
    "ns" : "test.places",
    "near" : "1100100000111111111100110000110000111111111100110000",
    "results" : [ ],
    "stats" : {
        "time" : 0,
        "btreelocs" : 0,
        "nscanned" : 2,
        "objectsLoaded" : 2,
        "avgDistance" : NaN,
        "maxDistance" : 0
    },
    "ok" : 1
}
一无所获。现在重新运行该命令,并在查询的regex部分使用不区分大小写的标志:

> db.runCommand({ geoNear: "places", near:[56,11], maxDistance:1, distanceMultiplier:1, query: { "city": /^city/i} })
{
    "ns" : "test.places",
    "near" : "1100100000111111111100110000110000111111111100110000",
    "results" : [
        {
            "dis" : 0.014142135623729393,
            "obj" : {
                "_id" : 1,
                "city" : "CityA",
                "loc" : [
                    56.01,
                    11.01
                ]
            }
        },
        {
            "dis" : 0.02828427124746381,
            "obj" : {
                "_id" : 2,
                "city" : "CityB",
                "loc" : [
                    56.02,
                    11.02
                ]
            }
        }
    ],
    "stats" : {
        "time" : 0,
        "btreelocs" : 0,
        "nscanned" : 2,
        "objectsLoaded" : 2,
        "avgDistance" : 0.0212132034355966,
        "maxDistance" : 0.028292673810819097
    },
    "ok" : 1
}
> 
两个位置都返回。有关在Mongo查询中使用正则表达式的文档可在“高级查询”页面的“正则表达式”部分找到:

希望以上内容能够解决您的问题,并允许您执行正确的查询