Comments (6)
Hi Guys (Rob :) ),
Any chance of some feedback?
from mongorepository.
MongoRepository is based on entire documents (entities) to be updated; simply pull the entity from Mongo, make your changes to the entity/document, and Update to save again.
If I misunderstood your question, then please post code to reproduce / demonstrate your problem.
from mongorepository.
I have ended up just adding this new method to the repo
///
/// Upserts an entity.
/// </summary>
/// <param name="filter">The filter.</param>
/// <param name="updateDefinition">The update definition.</param>
public virtual void Update(FilterDefinition<T> filter, UpdateDefinition<T> updateDefinition)
{
var result = this.collection.UpdateOne(filter, updateDefinition);
}
from mongorepository.
...which is fine (for you / your project) but not for MongoRepository. The Update method you show above leaks mongo-specific stuff like FilterDefinition
and UpdateDefinition
. MongoRepository aims to stay as persistance-agnostic as possible so you could, in theory, easily swap it out for another persistance layer (as long as it implements the repository interface). MongoRepository's goal is to "narrow" the usage of the Mongo API, not enhance it. It aims to provide only the most basic operations (Get/Update/Delete/...) and no more so you won't be easily enticed to use mongo-specific stuff that later will be hard to change to another persistance layer. If you don't want that or don't need that you'd probably better use the mongo-csharp-driver directly.
Having said that: I would've probably implemented your method as an extension method.
from mongorepository.
Ah Right. Makes sense if that is the goal. I like to have a bit of both however - the nice abstracted repo but some Mongo specific goodies as well.
from mongorepository.
I understand; sometimes it's nice to have your cake and eat it too 😉 But consider using an extension method so you can easily 'upgrade' to a newer version of MongoRepository should it ever change/update.
from mongorepository.
Related Issues (20)
- Delete not working as expected HOT 2
- how to insert data into collection used DBRef HOT 1
- Is this package supports MongoDB version 2.2.3? HOT 1
- when update to driver 2.2? HOT 1
- Referencing external documents, opposed to embedding. HOT 3
- Release on Nuget ? HOT 1
- how to search mongodb for list of ids HOT 1
- mongorepository update specific fields or all fields HOT 1
- Using the latest MongoDB.Driver ? HOT 1
- Using a shared MongoClient or MongoDatabase instance HOT 5
- Any possibility of an update to latest drivers? HOT 1
- Certain value types serializing as binary? HOT 3
- new mongoCsharpDriver HOT 1
- Version 2
- Castle Windsor registration HOT 1
- Migration to .NET Core / .NET Standard HOT 5
- MongoRepositary with latest MongoDB Driver HOT 1
- Support for 2.4.4 driver HOT 1
- Unable to get individual properties from collection document after inheriting from Entity HOT 8
- can not use GetSingle function in MongoRepository.Net45, Version=1.6.11.0 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 mongorepository.