sql >> データベース >  >> NoSQL >> MongoDB

Mongodbの日付とC#LINQドライバーの比較

    最後に、日付フィールドにカスタムシリアライザーを使用する解決策を見つけました。こんな感じです。

    私のクラス:

    [BsonIgnoreExtraElements]
    public class Tweet
    {
        public ObjectId Id { get; set; }
    
        [BsonElement("text")]
        public string Texto { get; set; }
    
        [BsonElement("created_at")]
        [BsonSerializer(typeof(FechaTweetsSerializer))]
        public DateTime Fecha { get; set; }
    }
    

    そして私のカスタムシリアライザー:

    public class FechaTweetsSerializer : SerializerBase<DateTime>
    {
    
        public override void Serialize(BsonSerializationContext context, BsonSerializationArgs args, DateTime value)
        {
            context.Writer.WriteString(value.ToString(CultureInfo.InvariantCulture));
        }
    
        public override DateTime Deserialize(BsonDeserializationContext context, BsonDeserializationArgs args)
        {
            var fecha = context.Reader.ReadString();
            return ConvertirFecha(fecha);
        }
    
        private DateTime ConvertirFecha(string fechaFormatoTwitter)
        {
            var formato = "ddd MMM dd HH:mm:ss zzzz yyyy"; //'Sun Oct 23 19:42:04 +0000 2016'
            var enUS = new CultureInfo("en-US");
            var fechaConvertida = DateTime.ParseExact(fechaFormatoTwitter, formato, enUS, DateTimeStyles.None);
            return fechaConvertida;
        }
    }
    

    それが誰かに役立つことを願っています。



    1. mongodbを使用しながら人間関係に対処する方法

    2. nginx/uwsgiサーバー用の永続的なメモリ内Pythonオブジェクト

    3. PHPがMongoDBドライバーを見つけることができません

    4. 距離が可変のMongoDbニア/ジオニアクエリ