예제 #1
0
        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);
        }
예제 #2
0
        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);
        }