« Mongodb and csharp » : différence entre les versions
Apparence
Aucun résumé des modifications |
|||
Ligne 16 : | Ligne 16 : | ||
var result = (await collection.FindAsync(filter)).ToList(); | var result = (await collection.FindAsync(filter)).ToList(); | ||
</kode> | |||
= Pipeline = | |||
<kode lang='cs'> | |||
var stages = new BsonDocument[] | |||
{ | |||
MatchStage(getTimeSeriesQuery), | |||
ProjectionStage(), | |||
SortStage() | |||
}; | |||
var pipeline = PipelineDefinition<InputClass, OutputClass>.Create(stages); | |||
var results = (await myCollection.AggregateAsync(pipeline)).List(); | |||
BsonDocument GetMatchStage(GetTimeSeriesQuery getTimeSeriesQuery) | |||
{ | |||
var match = new BsonDocument("property1", "value1"); | |||
if (!string.IsNullOrEmpty(variable2)) | |||
{ | |||
match.AddRange( | |||
new BsonDocument("property2", variable2) | |||
); | |||
} | |||
} | |||
BsonDocument GetProjectionStage() => | |||
new BsonDocument( | |||
"$project", | |||
new BsonDocument | |||
{ | |||
{ "_id", 0 }, | |||
{ "property1", 1 }, | |||
{ "property2", 1 } | |||
} | |||
); | |||
BsonDocument GetSortStage() => | |||
new BsonDocument("$sort", new BsonDocument("timestamp", 1)); | |||
</kode> | </kode> | ||
Version du 20 mars 2024 à 12:47
Access to a collection
var mongoClient = new MongoClient("MONGODB_CONNECTION_STRING");
var database = mongoClient.GetDatabase("DB_NAME");
var collection = database.GetCollection<Collection>("COLLECTION_NAME");
|
Filter
var builder = Builders<MyClass>.Filter;
FilterDefinition<MyClass> filter = filterDefinition.Empty;
filter &= builder.Eq(x => x.Property1, "id");
filter &= builder.In(x => x.Property1, new[] { "id1", "id2" }); // filter by Property1 equals to one of the ids
var result = (await collection.FindAsync(filter)).ToList();
|
Pipeline
var stages = new BsonDocument[]
{
MatchStage(getTimeSeriesQuery),
ProjectionStage(),
SortStage()
};
var pipeline = PipelineDefinition<InputClass, OutputClass>.Create(stages);
var results = (await myCollection.AggregateAsync(pipeline)).List();
BsonDocument GetMatchStage(GetTimeSeriesQuery getTimeSeriesQuery)
{
var match = new BsonDocument("property1", "value1");
if (!string.IsNullOrEmpty(variable2))
{
match.AddRange(
new BsonDocument("property2", variable2)
);
}
}
BsonDocument GetProjectionStage() =>
new BsonDocument(
"$project",
new BsonDocument
{
{ "_id", 0 },
{ "property1", 1 },
{ "property2", 1 }
}
);
BsonDocument GetSortStage() =>
new BsonDocument("$sort", new BsonDocument("timestamp", 1));
|
Log
var mongoUrl = new MongoUrl("MONGODB_CONNECTION_STRING");
var mongoClientSettings = MongoClientSettings.FromUrl(mongoUrl);
mongoClientSettings.ClusterConfigurator = cb =>
{
cb.Subscribe<CommandStartedEvent>(e =>
{
logger.LogTrace($"{e.CommandName} - {e.Command.ToJson()}");
});
};
this.mongoClient = new MongoClient(mongoClientSettings);
|
Configure the Log so it will be displayed in Visual Studio Output Debug window.