0
我想獲得某些與特定子句匹配的文檔,但不知道如何在關係數據庫中實現WHERE效果。我有一個簡單的數據庫,文字和他們的翻譯(具有2個字段的對象),並使用此代碼C#中的MongoDB查詢#
var words = database.GetCollection<Word>("Dictionary")
得到它們。但是,這得到了整個收藏。如果集合中有成千上萬的記錄怎麼辦?如何獲得我想要的記錄?
我想獲得某些與特定子句匹配的文檔,但不知道如何在關係數據庫中實現WHERE效果。我有一個簡單的數據庫,文字和他們的翻譯(具有2個字段的對象),並使用此代碼C#中的MongoDB查詢#
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"));
使用正則表達式匹配如下。 '我'顯示不區分大小寫。
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);
對於在查詢中使用'And'或'Or',如果要搜索多個字段。
根據此快速入門指南,您應該調用集合上的方法來縮小搜索範圍。 http://www.mongodb.org/display/DOCS/CSharp+Driver+Quickstart#CSharpDriverQuickstart-Getareferencetoacollectionobject聲明:我從來沒有使用MongoDB之前:-) –
我在想如果我只能檢索我需要的記錄,因爲這種方式我想我正在收集整個系列。或者,也許這是獲得這些文檔的唯一方法(首先獲取整個集合)? –
在讀完這些東西之後,我猜想獲得對該集合的「引用」並不意味着要獲取集合中存儲的所有數據。 –