Comments (5)
hi there...
only $near and $geoNear has been implemented so far.
you can use string templates in the meantime or simply import the mongodb official namespaces and use the driver features. the official driver is included in MongoDB.Entities so no need to install it seperately.
from mongodb.entities.
Thank you for responding to me.
One more question.
I'm following this tutorial and I don't know how to represent the Neighborhood object with the geospatial point object.
I'm creating a class for that, is there a geospatial object?
Thanks again.
from mongodb.entities.
I think you represent a neighborhood with a polygon and a restaurant with a point.
this library currently only has direct support for finding places within a given radius. see the following tutorial https://dev.to/djnitehawk/tutorial-geospatial-search-in-mongodb-the-easy-way-kbd
I'll see what I can do to implement the rest of geo stuff in the coming days.
in the meantime you might want to post on stack overflow asking how to do it using the c# driver.
from mongodb.entities.
Cool!
Thank you!
I found a way to implement it! I don't know if it is the best way but it is working.
public abstract class GeoLocation<T>
{
public virtual string type { get; set; }
public T coordinates { get; set; }
}
public class Polygon : GeoLocation<IEnumerable<IEnumerable<double[]>>>
{
public override string type { get; set; } = "Polygon";
}
public class Point : GeoLocation<double[]>
{
public override string type { get; set; } = "Point";
public override string ToString()
{
return $"[{string.Join(',', coordinates)}]";
}
}
public class Neighborhoods : Entity
{
public string name { get; set; }
public Polygon geometry { get; set; }
}
public class Restaurants : Entity
{
public string name { get; set; }
public Point location { get; set; }
}
private static void Main(string[] args)
{
new DB("MyDatabase", "localhost", 27017);
var result = DB.Find<Neighborhoods>().One("55cb9c666c522cafdb053a68");
Console.WriteLine($"Found Neighborhood: {result.name}");
var restaurant = DB.Find<Restaurants>().One("55cba2476c522cafdb053add");
Console.WriteLine($"Found Restaurant: {restaurant.name}");
var point = new Point { coordinates = new double[] { -73.93414657, 40.82302903 } };
var pipeline = new Template<Neighborhoods>(
@"[
{$match:{ <geometry>: { $geoIntersects: { $geometry: { type: 'Point', coordinates: <neighborhood_coord> } } } }}
]"
)
.Tag("neighborhood_coord", point.ToString())
.Path(p => p.geometry);
var aggregateResult = DB.Aggregate(pipeline)
.ToList();
Console.Read();
}
from mongodb.entities.
yep this looks good.
well done!
from mongodb.entities.
Related Issues (20)
- CreateCollectionAsync() - small documentation changes
- DB.SaveAsync Error : Must contain at least 1 request HOT 3
- About the MongoDB.Driver.Linq.ExpressionNotSupportedException HOT 2
- Change Stream functionality doesn't work HOT 1
- Delete by lambda expression report errors HOT 4
- DBContext.DeleteAsync throwing exception starting from v21.0.2 HOT 2
- ReadName can only be called when State is Name, not when State is EndOfDocument. HOT 1
- DeleteAsync is Acknowledged but DeletedCount is always zero HOT 2
- Missing Parameterless constructor HOT 1
- The collection type 'MongoDB.Entities.Many' is abstract, an interface, or is read only, and could not be instantiated and populated HOT 1
- [Feature Request] Add property attribute to configure TTL HOT 1
- support soft delete HOT 3
- migrations run repeatly HOT 3
- I would like to ask how to write a query, can help me? HOT 8
- Q: Parallel integration tests with separate database per test class/collection HOT 1
- Nullable ID field in IEntity interface HOT 4
- Disallow saving objects with unregistered discriminator value HOT 3
- About Customize collection names HOT 1
- Does DB.Update lock row while update? HOT 3
- While updating how to add record if not found? HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mongodb.entities.