【发布时间】:2012-09-07 14:53:38
【问题描述】:
假设我们有一个 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 来实现这个场景。
【问题讨论】:
-
一切都取决于您的要求。如果您要经常进行此类查询,那么添加该字段的字符串版本可能是有意义的,但如果您只是偶尔这样做,那将是矫枉过正。
标签: c# mongodb 10gen-csharp-driver