/* Copyright 2015-present MongoDB Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ using System; using MongoDB.Bson; using MongoDB.Driver.Core.Misc; namespace MongoDB.Driver { /// /// Options for an aggregate operation. /// public class AggregateOptions { // fields private bool? _allowDiskUse; private int? _batchSize; private bool? _bypassDocumentValidation; private Collation _collation; private string _comment; private BsonValue _hint; private TimeSpan? _maxAwaitTime; private TimeSpan? _maxTime; private ExpressionTranslationOptions _translationOptions; private bool? _useCursor; // properties /// /// Gets or sets a value indicating whether to allow disk use. /// public bool? AllowDiskUse { get { return _allowDiskUse; } set { _allowDiskUse = value; } } /// /// Gets or sets the size of a batch. /// public int? BatchSize { get { return _batchSize; } set { _batchSize = Ensure.IsNullOrGreaterThanOrEqualToZero(value, nameof(value)); } } /// /// Gets or sets a value indicating whether to bypass document validation. /// public bool? BypassDocumentValidation { get { return _bypassDocumentValidation; } set { _bypassDocumentValidation = value; } } /// /// Gets or sets the collation. /// public Collation Collation { get { return _collation; } set { _collation = value; } } /// /// Gets or sets the comment. /// public string Comment { get { return _comment; } set { _comment = value; } } /// /// Gets or sets the hint. This must either be a BsonString representing the index name or a BsonDocument representing the key pattern of the index. /// public BsonValue Hint { get { return _hint; } set { _hint = value; } } /// /// Gets or sets the maximum await time. /// public TimeSpan? MaxAwaitTime { get { return _maxAwaitTime; } set { _maxAwaitTime = value; } } /// /// Gets or sets the maximum time. /// public TimeSpan? MaxTime { get { return _maxTime; } set { _maxTime = Ensure.IsNullOrInfiniteOrGreaterThanOrEqualToZero(value, nameof(value)); } } /// /// Gets or sets the translation options. /// public ExpressionTranslationOptions TranslationOptions { get { return _translationOptions; } set { _translationOptions = value; } } /// /// Gets or sets a value indicating whether to use a cursor. /// public bool? UseCursor { get { return _useCursor; } set { _useCursor = value; } } } }