I am retrieving the data from mongodb.it is coming as bson document.
when i am converting it to json it throws system out of memory exception because of bulk data(lakhs of data) is coming from mongodb.
Is it possible to retrieve the data from mongodb in json format directly? how to resolve this.Any Help.Thanks in Advance.
please see the image.
- public object getFrequencyQuestionData1(int id)
- {
- var StudyId = (from ST in _context.Study_Team
- where ST.Emp_Id == id
- select (ST.Study_Id).ToString()).ToList();
- var connectionString = "mongodb://localhost:27017";
- MongoClient client = new MongoClient(connectionString);
- MongoServer server = client.GetServer();
- MongoDatabase db = server.GetDatabase("FormDataBase");
- MongoCollection<BsonDocument> collection = db.GetCollection<BsonDocument>("FrequencyQuestionForm");
- var array = new BsonArray(StudyId.ToArray());
- var query = Query.In("data.formList.IdentificationDetails.Study_Id", array);
- var myLists = collection.Find(query);
- myLists.SetFields(Fields.Include("_id","data.formList.IdentificationDetails.Study_Id", "data.formList.IdentificationDetails.Study_Name", "data.formList.IdentificationDetails.Volunteer_Id", "data.formList.IdentificationDetails.Form_Id","data.formList.IdentificationDetails.Form_Name", "data.formList.IdentificationDetails.Status", "data.formList.IdentificationDetails.Group_Id", "data.formList.IdentificationDetails.Visit_No","data.formList.IdentificationDetails.Created_Emp_Id", "data.formList.IdentificationDetails.Updated_Emp_Id"));
- var items = myLists.ToList();
- string document = items.ToJson();
- JToken token = JToken.Parse(document);
- var jObject = JObject.FromObject(new { formdata = token });
- JArray sizes = (JArray)jObject["formdata"];
- ArrayList SplittedData = new ArrayList();
- for (int i = 0; i < sizes.Count(); i++)
- {
- JValue _id = (JValue)sizes[i]["_id"];
- JObject sampledata = (JObject)sizes[i]["data"];
- JArray sampledata2 = (JArray)sampledata["formList"];
- JArray sampledata3 = (JArray)sampledata2[0]["IdentificationDetails"];
- sampledata3[0]["id"] = _id;
- int? Visit_No = (int?)sampledata3[0]["Visit_No"];
- int? Group_Id = (int?)sampledata3[0]["Group_Id"];
- int? Study_Id = (int?)sampledata3[0]["Study_Id"];
- int? Form_Id = (int?)sampledata3[0]["Form_Id"];
- int CreatedEmp_Id =(int)sampledata3[0]["Created_Emp_Id"];
- var Visit_No1 = (from SS in _context.Study_Schedule
- join SV in _context.Study_Visits
- on new { SS.Study_Id, SS.Visit_No } equals
- new { SV.Study_Id, SV.Visit_No }
-
- where SS.Study_Id == Study_Id && SS.Visit_No == Visit_No && SS.Form_Id == Form_Id
- select SV.Visit_Description).FirstOrDefault();
- var Created_Emp_Id = (from US in _context.User
- where US.Emp_Id == CreatedEmp_Id
- select US.Emp_Name).FirstOrDefault();
-
- sampledata3[0]["Created_Emp_Id"] = Created_Emp_Id;
- if (Group_Id == null)
- {
- sampledata3[0]["Diet_Group"] = "";
- }
- else
- {
- var StudyGroup = (from SG in _context.Study_Group
- where SG.Group_Id == Group_Id
- select new
- {
- Group_Description = SG.Group_Description,
- }).FirstOrDefault();
- if (StudyGroup == null)
- {
- sampledata3[0]["Diet_Group"] = "";
- }
- else
- {
- sampledata3[0]["Diet_Group"] = StudyGroup.Group_Description.ToString();
- }
- }
- sampledata3[0]["Visit"] = Visit_No1;
- sampledata3[0]["Created_Emp_Id"] = Created_Emp_Id;
- var sampledata4 = (JObject)sampledata3[0];
- SplittedData.Add(sampledata4);
- }
- var jObject1 = JObject.FromObject(new { formdata = SplittedData});
- return jObject1;
- }