我有一个'用户'地理空间领域的收集' location'。地点'是可选字段。 我需要编写一个查询,当结果应该从提供的点的半径范围内的用户列表开始,并完成一个用户列表没有任何位置。
查询示例:
db.User.find({ location: { $nearSphere: [ -104.578457, 19.684754 ], $maxDistance: 100/3963.2 } })
或
db.User.aggregate([{
$geoNear: {
near: [ -104.578457, 19.684754 ],
distanceField: "distance",
maxDistance: 100,
distanceMultiplier: 3963.2,
spherical: true
}
}])
我的问题: 此查询仅返回包含已填充位置的记录,但我还需要没有任何位置的记录。我需要类似的东西:
db.User.find({ location: { $nearSphere: [ -104.578457, 19.684754 ], $maxDistance: 100/3963.2 } })
UNION
db.User.find({ location: { $exists: false }})
你有什么想法来解决我的问题吗? MapReduce不是变种