gpt4 book ai didi

c# - 使用 NoRM 和其他工具更新数值类型会更改 MongoDb 上的数值类型元数据

转载 作者:可可西里 更新时间:2023-11-01 10:35:46 26 4
gpt4 key购买 nike

我们使用 NoRM C# 驱动程序将我们的域类存储在 mongodb 上。我们面临的问题是关于这个数据库的外部更新。当尝试使用外部工具(例如 mongo shell 或 MongoVUE)更新最初使用 NoRM 创建的现有域实体时,数值存储为不同的数字类型。即:包含 Int32 字段值的域实体更新为 integer64 (MongoVUE) 或 float64 (mongo Shell)。

原始 C# 实体:

Class Person
{
public string Name {get; set;}
public int Age {get; set;}
}

使用 NoRM 创建的原始实体:

{ Name: 'John Smith', Age: 16 }  // On MongoVUE Age field is shown as Int32

使用 MongoVUE 更新实体:

db.Test.update({Age:16}, {$set:{Age:22}})

{ Name: 'John Smith', Age: 22 } // On MongoVUE Age field is shown as Int16

使用 Mongo Shell 更新实体:

db.Test.update({Age:22}, {$set:{Age:32}})

{ Name: 'John Smith', Age: 32 } // On MongoVUE Age field is shown as Float64

当我们尝试根据用于执行更新的工具使用 NoRM 检索更新的实体时,NoRM 无法检索实体。

因此我们需要以某种方式在更新查询中指定数字类型元数据,但我们找不到这样做的方法。

最佳答案

我们试验了同样的问题。由于这个和许多其他烦人的事情考虑使用 10gen 驱动程序(在这些 NoRM 驱动程序中被逐步淘汰)

http://groups.google.com/group/norm-mongodb/browse_thread/thread/2e44f73b2beaa984

关于c# - 使用 NoRM 和其他工具更新数值类型会更改 MongoDb 上的数值类型元数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4758404/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com