我想要显示c#中最后一条记录,对于这个目标,必须知道何时将新记录插入到mongodb集合中,并更新c#中显示的最后一条记录。为此,mongodb建议使用change stream,但我不能使用that.my代码,如下所示:
namespace Kaa_app
{
class Program
{
static void Main(string[] args)
{
CallMain(args).Wait();
Console.ReadLine();
}
static async Task CallMain(string[] args)
{
var client = new MongoClient("mongodb://192.168.43.267:27017");
var database = client.GetDatabase("kaa");
var collection = database.GetCollection<BsonDocument>("endpoint");
await collection.Find(new BsonDocument()).Sort("{_id:-1}").Limit(1).ForEachAsync(X => Console.WriteLine(X));
}
public class Data
{
[BsonId]
public String application_id { get; set; }
public String endpoint_id { get; set; }
public String credentials_id { get; set; }
}
}
}
发布于 2018-07-25 05:41:15
下面是如何使用MongoDB .Net/C# driver v2.7在MongoDB中打开change流的示例代码。您可能只想侦听特定的change events,即插入。
var database = client.GetDatabase("dbName");
var collection = database.GetCollection<BsonDocument>("collectionName");
var options = new ChangeStreamOptions { FullDocument = ChangeStreamFullDocumentOption.UpdateLookup };
var pipeline = new EmptyPipelineDefinition<ChangeStreamDocument<BsonDocument>>().Match("{ operationType: { $in: [ 'insert', 'delete' ] } }");
var cursor = collection.Watch<ChangeStreamDocument<BsonDocument>>(pipeline, options);
var enumerator = cursor.ToEnumerable().GetEnumerator();
while(enumerator.MoveNext())
{
ChangeStreamDocument<BsonDocument> doc = enumerator.Current;
// Do something here with your document
Console.WriteLine(doc.DocumentKey);
}
https://stackoverflow.com/questions/51474747
复制相似问题