MongoDB学習ノートのQueryDocumentクエリー

2063 ワード

MongoDBデータベースはNosqlの一員として、非関係データベースの中で最も機能が豊富で、最も関係データベースに似ています.
クエリーは比較的便利で、QueryDocumentオブジェクトを通じてクエリーフィルタ条件を自由に組み立てることができます!
今日QueryDocumentを使用しているとき、条件フィルタとして使用して結果を返さなかったフィールドがあります.コードは以下の通りです.
 
 
string sObjID = "";
sObjID = tb_ObjID.Text;

QueryDocument query = new QueryDocument();

if (sObjID != "")
{
     query.Add("ObjID", sObjID);
}
mongoDB.GetCollection().FindAs(query)

デバッグでデータベースが格納されているのはIntタイプであることに気づきました.queryですか.Add(「ObjID」、sObjID)の場合のsObjIDもintタイプに変換しなければなりませんか?
次に、データベース・セットのフィールド・タイプの断面図を示します.
 
やはり、フロントエンドパラメータをIntタイプに設定すると、正常に検索できます!次は私が調整したコードです!
 
int iObjID = 0;

QueryDocument query = new QueryDocument();

if (iObjID != 0)
{
	query.Add("ObjID", iObjID);
}
mongoDB.GetCollection().FindAs(query)

この能力は1つの小さい問題で、ちょうどMongoDBを使ってまだ原因がどうしてこのようになのか分からないで、招待状を残して先に!
QueryDocumentの一般的なクエリーを添付します.
/*---------------------------------------------            
* sql : SELECT * FROM table WHERE ConfigID > 5 AND ObjID = 1           
*---------------------------------------------             
*/            
QueryDocument query = new QueryDocument();            
BsonDocument b = new BsonDocument();            
b.Add("$gt", 5);                       
query.Add("ConfigID", b);
query.Add("ObjID", 1);
MongoCursor m = mongoCollection.FindAs(query);

/*---------------------------------------------            
* sql : SELECT * FROM table WHERE ConfigID > 5 AND ConfigID < 10           
*---------------------------------------------             
*/            
QueryDocument query = new QueryDocument();            
BsonDocument b = new BsonDocument();            
b.Add("$gt", 5);   
b.Add("$lt", 10);                 
query.Add("ConfigID", b);
MongoCursor m = mongoCollection.FindAs(query);