private BsonDocument GetCollectionInfo(IReadBinding binding, string collectionName) { var commandOperation = new ReadCommandOperation <BsonDocument>( _collectionNamespace.DatabaseNamespace, new BsonDocument("listCollections", 1), BsonDocumentSerializer.Instance, new MessageEncoderSettings()); var commandResult = commandOperation.Execute(binding, CancellationToken.None); return(commandResult["cursor"]["firstBatch"].AsBsonArray.Where(c => c["name"] == _collectionNamespace.CollectionName).Single().AsBsonDocument); }
private BsonDocument GetCollectionStats(IReadBinding binding, bool async) { var command = new BsonDocument { { "collStats", _collectionNamespace.CollectionName } }; var operation = new ReadCommandOperation <BsonDocument>(_collectionNamespace.DatabaseNamespace, command, BsonDocumentSerializer.Instance, _messageEncoderSettings); if (async) { return(operation.ExecuteAsync(binding, CancellationToken.None).GetAwaiter().GetResult()); } else { return(operation.Execute(binding, CancellationToken.None)); } }