在整数值上搜索子字符串

时间:2012-09-07 14:53:39

标签: c# mongodb 10gen-csharp-driver

假设我们有一个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实现这种情况。

1 个答案:

答案 0 :(得分:0)

你的要求没有多大意义。

正则表达式用于字符串中的搜索,而不是整数中的搜索。

如果您想执行子字符串搜索(无论出于何种原因),请存储您的号码 作为字符串而不是整数 - 显然。