Я нашел решение для тебя. Вы можете использовать это
Используйте mongoexport для экспорта данных:
mongoexport --db test --collection traffic --out traffic.json
выполните команду в командной оболочке mongo
, если проблема не устранена, обратитесь к этот официальный материал
Using a class for each property value would be more scalable that having to declare a bool for each property. It would also enable you to chose which properties are able to be left empty and/or set to null.
Вы можете написать класс, который обертывает флаги данными:
public class DtoData<T>
{
T data;
bool IsSet { get; private set; }
T Data
{
get { return data; }
set { data = value; IsSet = true; }
}
}
public class XyzDto
{
// only private setters, initialize in constructor
DtoData<int?> SomeInt { get; private set; }
DtoData<string> SomeString { get; private set; }
}
Это имеет некоторые недостатки. Например, если все ваши данные заключены в ссылочный тип, поэтому ссылка на DtoData все еще может быть нулевой, вам необходимо создать их в конструкторе. И трудно сделать значения доступными только для внутренних или защищенных.
Лично я бы попытался избежать этой проблемы. Почему «не определено» действительно должно существовать? Вы рассылаете различия, неполные Dtos или откуда они взялись? Эта проблема может возникнуть с фильтрами, где вам нужна разница, если вы фильтруете поле на нуль или если вы не фильтруете его вообще. Но для таких сценариев
Я уже сталкивался с этой проблемой раньше. Вы можете обойти это, введя какое-то значение по умолчанию при построении DTO, но это не идеально. Я написал более подробную информацию здесь , это может помочь кому-то лучше понять проблему.
В общем, речь идет о значении по умолчанию, которое отличается от любого значения, которое может установить пользователь. Так что просто укажите это; установите значение по умолчанию, которое не входит в допустимый диапазон значений, которые может установить пользователь. Таким образом, если значение установлено по умолчанию, вы знаете, что оно не было установлено; если значение отличается от этого, вы знаете, что пользователь с ним повозился. Кажется, вас сбивает тот факт, что одно из устанавливаемых пользователем значений равно null; просто считайте его одним из набора значений, устанавливаемых пользователем; сделать весь диапазон переменной немного большим набором с одним дополнительным значением по умолчанию. Это должно решить вашу проблему.