"a": {
"pupils": {
"a": {
"ticket": "Билет 2",
"passed": true,
"rezult": 1,
"passed_tickets": [
"Билет 3",
"Билет 2",
"Билет 2"
],
"repass": false
}
}
Element 'a' does not match any field or property of class test.Group
coll1 = database.GetCollection<Group>("pupils");
List<Group> poop = await coll1.Find(new BsonDocument()).ToListAsync();
public class Group
{
public ObjectId Id { get; set; }
public Dictionary<string, Pupils> group { get; set; }
}
public class Pupils
{
public Dictionary<string, Pupil> pupils { get; set; }
}
public class Pupil
{
public Dictionary<string, Info> pupil { get; set; }
}
public class Info
{
public string Ticket { get; set; }
public bool Passed { get; set; }
public int Result { get; set; }
public string[] PTickets { get; set; }
public bool Repass { get; set; }
}
Console.WriteLine(JsonSerializer.Serialize(poop));
List poop = await coll1.Find(new BsonDocument()).ToListAsync();
group -> a
, то он пройдет дальше, т.е. ошибку из-за названия выдает, но опять же писал, что названия переменных не будут известны программе. {
"_id": {
"$oid": "636e10187499f181ae62301a"
},
"a": {
"pupils": {
"a": {
"ticket": "Билет 2",
"passed": true,
"rezult": 1,
"passed_tickets": [
"Билет 3",
"Билет 2",
"Билет 2"
],
"repass": false
}
},
"tickets": {
"Билет 1": {
"Question": {
"type": 0,
"Answer 1": true,
"Answer 2": false,
"Answer 3": false
},
"Question 2": {
"type": 0,
"Answer 1": false,
"Answer 2": true,
"Answer 3": false
},
"Question 3": {
"type": 0,
"Answer 1": false,
"Answer 2": false,
"Answer 3": true
}
},
"Билет 2": {
"Question 1": {
"Answer 1": true,
"Answer 2": false,
"Answer 3": false,
"pictureK": 1,
"picture": "1.png",
"type": 0
},
"Question 2": {
"Answer 1": false,
"Answer 2": false,
"Answer 3": true,
"pictureK": 0,
"picture": "3.png",
"type": 0
},
"Question 3": {
"answer": "suuu1",
"pictureK": 1,
"picture": "4.png",
"type": 1
},
"Question 4": {
"answer": "suuu",
"pictureK": 0,
"picture": "2.png",
"type": 1
}
},
"Билет 3": {
"Question": {
"type": 1,
"answer": "test"
},
"Question 2": {
"type": 1,
"answer": "test1"
},
"Question 3": {
"type": 1,
"answer": "test2"
}
}
}
}
}
public class Document
{
public ObjectId Id { get; init; }
[BsonElement("a")]
public PupilsWithTickets PupilsWithTickets {get;set;}
}
public class PupilsWithTickets
{
[BsonElement("pupils"]
public Dictionary<string, Pupil> Pupils {get;set;}
}
public class Pupil
{
[BsonElement("ticket")]
public string Ticket {get;set;}
}
[BsonExtraElements]
IDictionary<string, PupilsWithTickets> ExtraElements { get;set;}
"name": "a",
"group": "a",
"pass": "a",
"ticket": ...
"_id": 123
"Question": "Answer"
"_id": 456
"Question 2": "Answer"
"_id": 789
"Question 3": "Answer"
"name": "Билет 1",
"questions": [123, 456, 789]
но как хранить билеты с вопросами, ответами, типами, картинками и прочее?
был вариант сделать отдельную базу с вопросами
"_id": 123 "Question": "Answer" "_id": 456 "Question 2": "Answer" "_id": 789 "Question 3": "Answer"
{
"_id": ...,
"problem": "Текст вопроса",
"answers: [
{ "id": 1, "text": "Вариант ответа 1"},
{ "id": 2, "text": "Вариант ответа 2"}
],
"correctAnswerId": 1
// какие-то ещё нужные поля
}
{
"_id": ...,
"exam": {/* Поля экзаменационного билета, чтобы зафиксировать их*/}
"answer: {/*Поля, связанные с ответом. Например координаты обведённой области на картинке или просто номер ответа*/}
}