0

我想获取与特定子句匹配的某些文档,但不知道如何在关系数据库中实现 WHERE 效果。我有一个简单的数据库,其中包含单词及其翻译(具有 2 个字段的对象)并使用此代码

var words = database.GetCollection<Word>("Dictionary")

得到他们。但这得到了整个集合。如果集合中有数千条记录怎么办?如何获得我想要的记录?

4

2 回答 2

1

这假设您有一个名为 Word 的类,它像您的集合一样建模。

MongoServer _server = new MongoClient(connectionString).GetServer();
MongoDatabase _database = _server.GetDatabase(database);
MongoCollection _collection = _database.GetCollection(collection);

var results = _collection.FindAs<Word>(Query.EQ("MyField","WordToFind"));
于 2014-06-06T21:21:33.223 回答
1

使用正则表达式匹配如下。'i' 表示不区分大小写。

var collections = mongoDatabase.GetCollection("Abcd");

var queryA = Query.And(
         Query.Matches("strName", new BsonRegularExpression("ABCD", "i")), 
         Query.Matches("strVal", new BsonRegularExpression("4121", "i")));

var queryB = Query.Or(
       Query.Matches("strName", new BsonRegularExpression("ABCD","i")),
       Query.Matches("strVal", new BsonRegularExpression("33156", "i")));

var getA = collections.Find(queryA);
var getB = collections.Find(queryB);

对于在查询中使用“与”或“或”,如果您想搜索多个字段。

于 2015-12-11T07:34:12.837 回答