首页 > 解决方案 > 时间:2019-06-01 标签:c#mongodb string data type not find

问题描述

我有一个云 mongodb 数据库(nosql)系统。我创建数据库和集合,这完成了,没问题。

我通过用户名、密码和连接字符串连接了这个 mongodb 的 Visual Studio 项目。我想在字符串 (example=="ABC DEF") linq 查询中找到运行但不工作。

所有代码中的本地类:

    [BsonIgnoreExtraElements]
    public class data
    {
        [BsonId]
        public ObjectId _id { get; set;}

        [BsonElement("name")]
        public string name { get; set; }

        [BsonElement("transit")]
        public int transit { get; set; }

        [BsonElement("beds")]
        public int beds { get; set; }
    }

linq(获取数据)代码中的控制器:

var client = new MongoClient(
        "mongodb+srv://username:passw@cluster0.b1vf5.mongodb.net/databaseName?retryWrites=true&w=majority"
    );
            var database = client.GetDatabase("databaseName");
            var collection = database.GetCollection<data>("collectionName");
            var read = collection.Find(data => data.name == "ABC DEF").ToList();
            return Content(read[0].beds.ToString());

如果name=="ABC" 样式这么全文,没有空字符也没问题。如果 name="ABC DEF" 样式所以没有全文,有空的 " " 字符是问题,这个错误文本显示。

在此处输入图像描述

错误文本:“10006546”不是有效的 24 位十六进制字符串。

标签: c#databasemongodblinqnosql

解决方案


空白不是有效的 Object_id 对象。将 Id 的数据类型更改为字符串。请检查MongoDB.Bson.dll 中发生的 System.FormatException' - XXX 不是有效的 24 位十六进制字符串以获取更多信息。


推荐阅读