sql >> Databasteknik >  >> NoSQL >> MongoDB

Läs specifika fältvärden från MongodbC#

Det finns några sätt du kan uppnå detta beroende på om din ostrukturerade data är känd vid kompilering eller körning.

För kompileringstyp kan du modellera din projektion av data och använda projektionsbyggaren för att specificera hur din projektion ska fungera

var collection = database.GetCollection<Customer>("customers");

var document = new Customer(){Name = "Joe Bloggs", Age = 30, Address = "York"};
collection.InsertOne(document);

var projection = Builders<Customer>
                    .Projection
                    .Include(x => x.Id).Include(x => x.Age);

var customerProjection = await collection.Find(x => true)
                    .Project<CustomerProjection>(projection)
                    .FirstAsync();

Ovan angav vi returtypen som det generiska argumentet men om vi utelämnar detta kommer vi att returneras ett BsonDocument vilket kan vara användbart beroende på din användning

var bsonDocument = await collection.Find(x => true)
                    .Project(projection)
                    .FirstAsync();

Vi kan också uppnå samma resultat genom att använda linq expression:

var projection = await collection.Find(x => true)
    .Project(x => new {x.Id, x.Age}).FirstAsync();

Detta kommer att resultera i att en anonym typ returneras med ett ID och en ålder.

Men om vi inte känner till data vid kompilering och baserar fälten med magiska strängar vid körning måste du skicka in BsonDocument till GetCollection metod:

var collection = database.GetCollection<BsonDocument>("customers");

Du kommer nu att kunna göra båda ovanstående metoder för att projicera bson-dokumentet, men det kommer att vara på fältbasis.

Jag skulle dock råda dig att försöka använda projektbyggarna eftersom det kommer att göra ditt liv lite enklare:

var projectionDefinition = Builders<BsonDocument>.Projection
                                        .Include("age")
                                        .Exclude("_id");

var projection = await collection.Find(x => true)
                    .Project(projectionDefinition)
                    .FirstAsync();



  1. skapa grupp och analysera data från arraylista i birt

  2. Elastisk sökning med MongoDB:Söka i PDF-filer

  3. Hur beskriver jag en samling i Mongo?

  4. Problem med att installera Mongodb på Ubuntu 20.04