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

Използване на $addFields в MongoDB драйвер за C#

BsonDocument може да се преобразува в IPipelineStageDefinition. За да получите BsonDocument, който искате, просто искате:

var addFieldsDefinitionDoc = BsonDocument.Parse(addFieldsDefinition.ToString());
var stageElement = new BsonElement("$addFields", addFieldsDefinitionDoc);
var stage = new BsonDocument(stageElement)

След това, за да го добавите, просто използвайте:

aggregate = aggregate.AppendStage(stage);

Не съм сигурен дали aggregate.Stages.Add би направил същото или не, но мисля AppendStage вероятно е по-добрият начин да го направя (въпреки че не намерих никаква документация, която да ми казва кой е правилният начин за правене на повечето неща, така че това беше намерено чрез проба и грешка и проверка на източника, за да видя как работят нещата)...

Можете дори да добавите допълнителни етапи, като използвате нормалните функции за създаване на етапи, като така:

aggregate = aggregate.Project(projectionDefinition);

или дори

aggregate = aggregate
    .AppendStage(stage)
    .Project(projectionDefinition);



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Как да прекъсна изпълнявана заявка в обвивката на MongoDB?

  2. Laravel 4:Класът „MongoClient“ не е намерен

  3. Запазване на свойство на масив в схема на Mongoose

  4. Не може да се свърже с отдалечен сървър на mongodb

  5. Вътрешна грешка в сървъра при мигриране на Parse към Heroku/AWS