本文整理汇总了C#中BsonDocument.Clear方法的典型用法代码示例。如果您正苦于以下问题:C# BsonDocument.Clear方法的具体用法?C# BsonDocument.Clear怎么用?C# BsonDocument.Clear使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类BsonDocument
的用法示例。
在下文中一共展示了BsonDocument.Clear方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: UpdateDocument
protected override void UpdateDocument(BsonDocument document, Func<BsonDocument, UpdateCompiler> update)
{
var copy = document.DeepClone();
try
{
update(document);
}
catch
{
document.Clear();
document.AddRange(copy.AsBsonDocument);
throw;
}
}
示例2: UpdateDocument
protected override void UpdateDocument(BsonDocument document, Func<BsonDocument, UpdateCompiler> update)
{
var oldId = document[MyValue.Id];
var copy = document.DeepClone();
try
{
update(document);
BsonValue newId;
if (!document.TryGetValue(MyValue.Id, out newId) || !oldId.Equals(newId))
throw new InvalidOperationException("Modification of _id is not allowed.");
}
catch
{
document.Clear();
document.AddRange(copy.AsBsonDocument);
throw;
}
}
示例3: PromoteQueryToDollarAndForm
private static void PromoteQueryToDollarAndForm(BsonDocument query, BsonElement clause)
{
var clauses = new BsonArray();
foreach (var queryElement in query)
{
clauses.Add(new BsonDocument(queryElement));
}
clauses.Add(new BsonDocument(clause));
query.Clear();
query.Add("$and", clauses);
}
示例4: TestClear
public void TestClear()
{
var document = new BsonDocument("x", 1);
Assert.AreEqual(1, document.ElementCount);
document.Clear();
Assert.AreEqual(0, document.ElementCount);
}
示例5: GetAggregation
/// <summary>
/// Aggregation用的$project和$order
/// </summary>
/// <returns></returns>
public List<BsonDocument> GetAggregation()
{
//如果有改名的话,则其他没有改名的,也需要设定输出
var projectAggr = new BsonDocument();
var suppressAggr = new BsonDocument();
var project = new BsonDocument();
var suppress = new BsonDocument();
bool HasRename = false;
foreach (var item in _mQueryFieldList)
{
var ctl = ((CtlFieldInfo)Controls.Find(item.ColName, true)[0]).QueryFieldItem;
if (ctl.ColName == ConstMgr.KeyId)
{
//id
if (!ctl.IsShow)
{
//id抑制
suppress.Add(new BsonElement(ConstMgr.KeyId, 0));
}
}
else
{
//其他字段
if (ctl.IsShow)
{
if (string.IsNullOrEmpty(ctl.ProjectName))
{
project.Add(new BsonElement(ctl.ColName, 1));
}
else
{
project.Add(new BsonElement(ctl.ProjectName, "$" + ctl.ColName));
HasRename = true;
}
}
else
{
suppress.Add(new BsonElement(ctl.ColName, 0));
}
}
}
var aggrDocList = new List<BsonDocument>();
//如果有抑制操作和改名操作,则需要分开执行
suppressAggr.Add(new BsonElement("$project", suppress));
aggrDocList.Add(suppressAggr);
if (!HasRename && suppress.Count() == 0)
{
//没有改名和抑制的时候,则project全部去除
project.Clear();
}
projectAggr.Add(new BsonElement("$project", project));
aggrDocList.Add(projectAggr);
return aggrDocList;
}