假设我们有一个mongodb集合,其元素包含一个int属性值,如:{“MyCollectionAttribute”:12345}
如何使用Query<T>.
语法在int中搜索字符串“234”?
现在它似乎可以使用原始查询工作(如here所述):
var query = new QueryDocument("$where", "/234/.test(this.MyCollectionAttribute)");
myCollection.Find(query);
是否最好将值直接存储为字符串而不是整数,因为正则表达式匹配会很慢?你是如何接近这种情况的?
修改
背景信息:公司可以拥有一些数字内部代码。在sql server中,它们可以存储为int类型的列,以便在数据库级别具有数据完整性,然后从linq查询到sql,例如:
.where(item => item.CompanyCode.ToString().Contains("234"))
通过这种方式,数据库级别的数据完整性和查询的类型安全性都有。
我问了这个问题,以便了解如何使用mongodb实现这种情况。
答案 0 :(得分:0)
你的要求没有多大意义。
正则表达式用于字符串中的搜索,而不是整数中的搜索。
如果您想执行子字符串搜索(无论出于何种原因),请存储您的号码 作为字符串而不是整数 - 显然。