Comments (2)
Is it possible to return only specific fields from collection documents to create sparse models?
Not at the "MongoRepository" level. At least, not in a way you want to.
Assume the following program:
using MongoRepository;
using System.Linq;
class Program
{
static void Main(string[] args)
{
var small_repo = new MongoRepository<SmallObject>();
var large_repo = new MongoRepository<LargeObject>();
var values = Enumerable.Range(0, 10000).ToArray();
small_repo.Add(Enumerable.Range(0, 100).Select(i => new SmallObject { Name = "so" + i }));
large_repo.Add(Enumerable.Range(0, 100).Select(i => new LargeObject { Name = "bo" + i, Values = values }));
}
}
[CollectionName("myobjects")]
public class SmallObject : Entity
{
public string Name { get; set; }
}
[CollectionName("myobjects")]
public class LargeObject : Entity
{
public string Name { get; set; }
public int[] Values { get; set; }
}
This would create a single collection of small and large objects. You could retrieve a large object as a small object because it happens to have the same fields:
var result = small_repo.Where(o => o.Name == "bo65").Single();
However, as profiling shows the entire object is returned and 'sent over the wire:
{
"op" : "query",
"ns" : "TestObjects.myobjects",
"query" : {
"Name" : "bo65"
},
//...
"nscanned" : 200,
"nscannedObjects" : 200,
//...
"nreturned" : 1,
"responseLength" : 98960,
//...
}
(See the responseLength key)
This makes sense since we have no way of specifying which fields of the document to return; all MongoRepository has/knows are the entities. You could go around MongoRepository using the underlying C# driver for MongoDB and use a projection.
from mongorepository.
Thank you, that's what I needed to know!
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.