/// <summary> /// Finds the mongo document specified. /// </summary> /// <returns>The found mongo document. Returns null if not found. </returns> /// <param name="field">Field to match to.</param> /// <param name="criteria">Criteria for the specified field. ie. "isBeta" : "true"</param> /// <param name="collectionName">Collection to edit, default value of "userData"</param> public static BsonDocument FindMongoDocument(string field, bool criteria, string collectionName = "userData") { ChangeCollection(collectionName); var result = MyMongoCollection.Find(FilterMongoDocument(field, criteria, collectionName)).FirstOrDefault(); return(result); }
/// <summary> /// Updates the document value for the given field. /// </summary> /// <param name="idValue">idValue's document to find.</param> /// <param name="field">Field to update in the document.</param> /// <param name="value">Value to change.</param> /// <param name="collectionName">Collection to edit, default value of "userData"</param> public static void UpdateDocumentValue(string idValue, string field, long value, string collectionName = "userData") { var filter = FilterMongoDocument("_id", idValue, collectionName); var update = new BsonDocument("$set", new BsonDocument { { field, value } }); MyMongoCollection.FindOneAndUpdateAsync(filter, update); }
/// <summary> /// Decrements the specified document field for the specified idValue by the given amount. /// </summary> /// <param name="idValue">idValue's document to find.</param> /// <param name="field">Field to update in the document.</param> /// <param name="decrementAmount">Decrement amount.</param> /// <param name="collectionName">Collection to edit, default value of "userData"</param> public static void DecrementDocument(bool idValue, string field, int decrementAmount = 0, string collectionName = "userData") { var filterUserName = FilterMongoDocument("_id", idValue, collectionName); var update = new BsonDocument("$inc", new BsonDocument { { field, -decrementAmount } }); MyMongoCollection.FindOneAndUpdateAsync(filterUserName, update); }