MongoDB 在对象数组中找到 $near
MongoDB find $near in object array
我开始使用 MongoDB API,因为我们使用的是 Azure Cosmos DB。
尝试使用 MongoDB 中的 $near 和基本结构 {key:"A": localtion:{type:"Point", coordinates:[1,2]}} 的示例,效果很好。问题是当我需要使用位置数组时。
我正在尝试执行此查询但没有结果。我做错了什么?
db.places.insert( {
id:1,
name: "AAAAAAAAAAA",
locals:[
{
location: { type: "Point", coordinates: [-73.9928, 40.7191 ] },
}
],
category: "Parks"
} );
db.places.insert( {
id:2,
name: "BBBBBBBBBBB",
locals:[
{
location: { type: "Point", coordinates: [-73.9928, 40.7193 ] },
}
],
category: "Parks"
} );
db.places.insert( {
id:3,
name: "CCCCCCCCCCCCC",
locals:[
{
location: { type: "Point", coordinates: [ -73.9375, 40.8303 ] },
}
],
category: "Parks"
} );
//Create index
db.places.createIndex({ "locals.location" : "2dsphere" })
//Query without result
db.places.find(
{
"locals.location":
{ $near:
{
$geometry: { type: "Point", coordinates: [ -73.9375, 40.8303 ] },
$minDistance: 1000,
$maxDistance: 5000
}
}
}
)
这些地方有很多当地人,所以我可以在里面放很多东西。
希望有人能帮助我。
干杯。
根据我对你的样本数据的测试,也得到了与你相同的空结果。据我所知,CosmosDB 仅支持 MongoDB API 的一个子集,并将请求转换为 CosmosDB SQL 等效项。 CosmosDB 有一些不同的行为和结果。但是 CosmosDB 有责任改进他们对 MongoDB.
的模拟
当然,如果您想要完整的 MongoDB 功能支持,您可以在 Azure 上添加反馈 here to submit your requirements or consider using MongoDB Atlas。
我开始使用 MongoDB API,因为我们使用的是 Azure Cosmos DB。 尝试使用 MongoDB 中的 $near 和基本结构 {key:"A": localtion:{type:"Point", coordinates:[1,2]}} 的示例,效果很好。问题是当我需要使用位置数组时。
我正在尝试执行此查询但没有结果。我做错了什么?
db.places.insert( {
id:1,
name: "AAAAAAAAAAA",
locals:[
{
location: { type: "Point", coordinates: [-73.9928, 40.7191 ] },
}
],
category: "Parks"
} );
db.places.insert( {
id:2,
name: "BBBBBBBBBBB",
locals:[
{
location: { type: "Point", coordinates: [-73.9928, 40.7193 ] },
}
],
category: "Parks"
} );
db.places.insert( {
id:3,
name: "CCCCCCCCCCCCC",
locals:[
{
location: { type: "Point", coordinates: [ -73.9375, 40.8303 ] },
}
],
category: "Parks"
} );
//Create index
db.places.createIndex({ "locals.location" : "2dsphere" })
//Query without result
db.places.find(
{
"locals.location":
{ $near:
{
$geometry: { type: "Point", coordinates: [ -73.9375, 40.8303 ] },
$minDistance: 1000,
$maxDistance: 5000
}
}
}
)
这些地方有很多当地人,所以我可以在里面放很多东西。
希望有人能帮助我。
干杯。
根据我对你的样本数据的测试,也得到了与你相同的空结果。据我所知,CosmosDB 仅支持 MongoDB API 的一个子集,并将请求转换为 CosmosDB SQL 等效项。 CosmosDB 有一些不同的行为和结果。但是 CosmosDB 有责任改进他们对 MongoDB.
的模拟当然,如果您想要完整的 MongoDB 功能支持,您可以在 Azure 上添加反馈 here to submit your requirements or consider using MongoDB Atlas。