MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Потокът от промени на MongoDB 4.4.4 връща всички актуализации на документи, а не филтрирано условие, съответстващо на едно?

успях да го накарам да работи със следното:

var options = new ChangeStreamOptions
{
    FullDocument = ChangeStreamFullDocumentOption.UpdateLookup,
    BatchSize = 1
};

var filter = Builders<ChangeStreamDocument<UserInfo>>
    .Filter.Where(x =>
        x.OperationType == ChangeStreamOperationType.Update &&
        x.FullDocument.UserName.Contains("Alice"));

filter &= Builders<ChangeStreamDocument<UserInfo>>.Filter.Exists("updateDescription.updatedFields.Password");

var pipeline = new IPipelineStageDefinition[]
{
    PipelineStageDefinitionBuilder.Match(filter)
};

using (var cursor = await collection.WatchAsync<ChangeStreamDocument<UserInfo>>(pipeline, options))
{
    while (await cursor.MoveNextAsync())
    {
        foreach (var info in cursor.Current)
        {
            Console.WriteLine("Updated: " + info.FullDocument.UserName);
        }
    }
}

ако нямате нищо против да използвате библиотека, всички горепосочени песни и танци могат да бъдат избегнати и нещата могат да бъдат дестилирани до следното:

var watcher = DB.Watcher<UserInfo>("on-alice-updates-password");

watcher.Start(
    eventTypes: EventType.Updated,
    filter: b => b.Where(x => x.FullDocument.UserName == "Alice") &
                 b.Exists("updateDescription.updatedFields.Password"));

watcher.OnChanges += docs =>
{
    foreach (var doc in docs)
        Console.WriteLine("Updated: " + doc.UserName);
};

вижте MongoDB.Entities документи за повече информация. отказ от отговорност:аз съм авторът на тази библиотека.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. техники за съхраняване на библиотеки в system.js на mongoDB

  2. Внедряване на оценка на обекта на израз на заявка, подобна на goMongoDB

  3. Изберете Групиране по брой и отделен брой в същата заявка за mongodb

  4. MongoDB $ltrim

  5. Как да добавите индекси в проект mongoDB с рамка Morphia