我想获取与特定子句匹配的某些文档,但不知道如何在关系数据库中实现 WHERE 效果。我有一个简单的数据库,其中包含单词及其翻译(具有 2 个字段的对象)并使用此代码
var words = database.GetCollection<Word>("Dictionary")
得到他们。但这得到了整个集合。如果集合中有数千条记录怎么办?如何获得我想要的记录?
我想获取与特定子句匹配的某些文档,但不知道如何在关系数据库中实现 WHERE 效果。我有一个简单的数据库,其中包含单词及其翻译(具有 2 个字段的对象)并使用此代码
var words = database.GetCollection<Word>("Dictionary")
得到他们。但这得到了整个集合。如果集合中有数千条记录怎么办?如何获得我想要的记录?
这假设您有一个名为 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"));
使用正则表达式匹配如下。'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);
对于在查询中使用“与”或“或”,如果您想搜索多个字段。