Merge pull request #2478 from bagerard/add_geonear_aggregation_test
Add $geonear aggregation test
This commit is contained in:
commit
5858ea1bf0
@ -6,6 +6,7 @@ Changelog
|
|||||||
Development
|
Development
|
||||||
===========
|
===========
|
||||||
- (Fill this out as you fix issues and develop your features).
|
- (Fill this out as you fix issues and develop your features).
|
||||||
|
- Bugfix: manually setting SequenceField in DynamicDocument doesn't increment the counter #2471
|
||||||
|
|
||||||
Changes in 0.22.1
|
Changes in 0.22.1
|
||||||
=================
|
=================
|
||||||
|
@ -1162,7 +1162,7 @@ class ReferenceField(BaseField):
|
|||||||
|
|
||||||
:param document_type: The type of Document that will be referenced
|
:param document_type: The type of Document that will be referenced
|
||||||
:param dbref: Store the reference as :class:`~pymongo.dbref.DBRef`
|
:param dbref: Store the reference as :class:`~pymongo.dbref.DBRef`
|
||||||
or as the :class:`~pymongo.objectid.ObjectId`.id .
|
or as the :class:`~pymongo.objectid.ObjectId`.
|
||||||
:param reverse_delete_rule: Determines what to do when the referring
|
:param reverse_delete_rule: Determines what to do when the referring
|
||||||
object is deleted
|
object is deleted
|
||||||
:param kwargs: Keyword arguments passed into the parent :class:`~mongoengine.BaseField`
|
:param kwargs: Keyword arguments passed into the parent :class:`~mongoengine.BaseField`
|
||||||
|
@ -248,6 +248,34 @@ class TestQuerysetAggregate(MongoDBTestCase):
|
|||||||
|
|
||||||
assert list(data) == [{"_id": p1.pk, "name": "ISABELLA LUANNA"}]
|
assert list(data) == [{"_id": p1.pk, "name": "ISABELLA LUANNA"}]
|
||||||
|
|
||||||
|
def test_queryset_aggregation_geonear_aggregation_on_pointfield(self):
|
||||||
|
"""test ensures that $geonear can be used as a 1-stage pipeline and that
|
||||||
|
MongoEngine does not interfer with such pipeline (#2473)
|
||||||
|
"""
|
||||||
|
|
||||||
|
class Aggr(Document):
|
||||||
|
name = StringField()
|
||||||
|
c = PointField()
|
||||||
|
|
||||||
|
Aggr.drop_collection()
|
||||||
|
|
||||||
|
agg1 = Aggr(name="X", c=[10.634584, 35.8245029]).save()
|
||||||
|
agg2 = Aggr(name="Y", c=[10.634584, 35.8245029]).save()
|
||||||
|
|
||||||
|
pipeline = [
|
||||||
|
{
|
||||||
|
"$geoNear": {
|
||||||
|
"near": {"type": "Point", "coordinates": [10.634584, 35.8245029]},
|
||||||
|
"distanceField": "c",
|
||||||
|
"spherical": True,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
assert list(Aggr.objects.aggregate(*pipeline)) == [
|
||||||
|
{"_id": agg1.id, "c": 0.0, "name": "X"},
|
||||||
|
{"_id": agg2.id, "c": 0.0, "name": "Y"},
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
unittest.main()
|
unittest.main()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user