async Task <bool> write(operation op, MongoRequest request) { LambdaLogger.Log(request.ToString()); request = this.checkRequest(request); connect(request); LambdaLogger.Log(dbClient.Cluster.Description.ToString()); IMongoCollection <BsonDocument> collection = dbClient.GetDatabase(request.database).GetCollection <BsonDocument>(request.collection); BsonDocument document = new BsonDocument(); List <BsonDocument> documents = new List <BsonDocument>(); BsonDocument filter = new BsonDocument(); switch (op) { case operation.createDocument: document = request.documents[0].ToBsonDocument(); await collection.InsertOneAsync(document); return(true); case operation.createDocuments: await collection.InsertManyAsync(request.documents); return(true); case operation.updateDocuments: filter = MongoDB.Bson.Serialization.BsonSerializer.Deserialize <BsonDocument>(request.query); BsonDocument update = request.documents[0]; var result = await collection.UpdateManyAsync(filter, update); if (result.ModifiedCount > 0) { return(true); } else { return(false); } // case operation.deleteDocuments: // filter = MongoDB.Bson.Serialization.BsonSerializer.Deserialize<BsonDocument>(request.query); // DeleteResult deleteResult = await collection.DeleteManyAsync(filter); // if(deleteResult != null) { // } } return(false); }
public async Task <JsonDocument> getDocuments(MongoRequest request) { LambdaLogger.Log(request.ToString()); request = this.checkRequest(request); connect(request); LambdaLogger.Log(dbClient.Cluster.Description.ToString()); IMongoCollection <BsonDocument> collection = dbClient.GetDatabase(request.database).GetCollection <BsonDocument>(request.collection); // Handle filters BsonDocument query = new BsonDocument(); if (request.query != null) { query = MongoDB.Bson.Serialization.BsonSerializer.Deserialize <BsonDocument>(request.query); } List <BsonDocument> docs = await collection.Find(query).Project("{_id: 0}").ToListAsync(); JsonDocument result = JsonDocument.Parse(docs.ToJson <List <BsonDocument> >()); return(result); }