Как изменить тип в MongoDB? - PullRequest
       3

Как изменить тип в MongoDB?

1 голос
/ 25 января 2011

Допустим, у меня есть целочисленный документ.

Когда я пытаюсь установить значение 3,5, оно все равно остается целым числом:

 db.users.update({}, {$set:{balance:3.5}})

Как я могу изменить его на число с плавающей запятой / десятичное число?

Ответы [ 2 ]

1 голос
/ 25 января 2011

Я только что сделал несколько примеров c #:

    public class Test
    {
       [BsonId]
       public string Id { get; set; }

       public int SomeIntegerField { get; set; }
    }

    [TestMethod]
    public void TypesTest()
    {
        var db = MongoRead.Instance;
        var collection = db.Database.GetCollection("test");
        var id = Guid.NewGuid().ToString();
        var test = new Test() { SomeIntegerField = 5, Id = id };
        collection.Insert(test);  //here type of SomeIntegerField in mongodb Integer

        //but after update type become Float64
        collection.Update(Query.EQ("_id", id), Update.Set("SomeIntegerField", 3.5));
  }

Но если вы попытаетесь автоматически десериализовать тестовый класс обратно после обновления, он выдаст ошибку, потому что тип SomeIntegerField будет Float64.Поэтому для таких ситуаций я предлагаю написать модульные тесты.

Надеюсь, это поможет вам.

1 голос
/ 25 января 2011

Пожалуйста, проверьте синтаксис update (). Первый параметр update () всегда является THE QUERY не предложение ОБНОВЛЕНИЕ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...