c# - 时间: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 位十六进制字符串。
解决方案
空白不是有效的 Object_id 对象。将 Id 的数据类型更改为字符串。请检查MongoDB.Bson.dll 中发生的 System.FormatException' - XXX 不是有效的 24 位十六进制字符串以获取更多信息。
推荐阅读
- javascript - 如何防止 MathJax 渲染的元素窃取右键单击事件?
- r - 数据框r和grepl中的两个条件
- c# - 在 SignalR 中将用户添加到 Hub 组
- python - 使用 Dialogflow Python API 在 Dialogflow 代理内创建知识库的问题
- javascript - jQuery - 不允许加载本地资源
- javascript - ReactJs:如何在 RegionDropdown 中选择默认值
- javascript - 在远程方法 beforeRemote 钩子上的 Loopback 中发送回响应
- angular - 按日期持续时间的角度过滤器数组
- hive - 如何在蜂巢中以驼峰形式保留列名
- java - Bean 名称“...”的 BindingResult 和普通目标对象都不能用作请求属性