c# mongodb or查询_MongoDB 多条件查询实现(C#)
dataAccessMongo dam = new dataAccessMongo();
MongoCollection coll = dam.Open();
//QueryDocument query = new QueryDocument();
//var query = Query.EQ("destination_number", destination_number);
List list = new List();
if (source_number != "") list.Add(Query.EQ("source_number", source_number));
当destination_number不为空时(即destination_number != ""),向列表中追加一个查询项(使用Query.EQ("destination_number", destination_number))。
if (DateTime.IsNullOrEmpty(talk_datetime1)) InList.Add($" talk_datetime", QueryInclude.gte(
DateTime.ParseAsync(t谈_datetime1),
AddHoursAsync(8)
));
当talk_datetime2不为空时 talk_datetime = DateTime.Parse(talk_datetime2).AddHours(8) list.Add(Query.LTE("talk_datetime", talk_datetime))
if (talk_second != "") list.Add(Query.GTE("talk_second", int.Parse(talk_second)));
if (department != "") list.Add(Query.Matches("department", department));
var query = Query.And(list);
//if (source_number != "") query.Add("source_number", source_number);
//如果 destination_number 不为空,则在查询中添加 "destination_number"
通话时间
//if (talk_datetime1 != "" || talk_datetime2 != "")
//{
// BsonDocument bsonTalkTime = new BsonDocument();
if ((talk_datetime1 == null) || (talk_datetime1.Trim().Length == 0)) {
return;
} else {
bsonTalkTime.Add("{gte}", DateTime.TryParse(talk_datetime1, @"yyyyMMdd HH:mm:ss.SSS") ?
DateTime.Parse(talk_datetime1) : null);
}
// 如果talk_datetime2不为空,则向bsonTalkTime插入一个新记录
if (talk_datetime2?.NET Core datetime?.IsNullOrEmpty != null) {
bsonTalkTime.InsertIfNotExists($"insertAt", new {
TalkDateTime = DateTime.Parse(talk_datetime2)?.AddHours(8)
});
}
// query.Add("talk_datetime", bsonTalkTime);
//}
时长
//if (talk_second != "")
//{
// BsonDocument bsonTalkSecond = new BsonDocument();
// bsonTalkSecond.Add("$gte", int.Parse(talk_second));
// query.Add("talk_second", bsonTalkSecond);
//}
//if(department != "")
// query.Add("department", new BsonRegularExpression(new Regex("/."+department+"./")));
int i = 0;
string sHTML = "";
foreach (BsonDocument bDocQuery in coll.FindAs(query))
{
sHTML += "
";
当bDocQuery包括'transfer_serial'键,并且该键对应的转为字符串等于'87883522'时
sHTML += "
呼出";
else
sHTML += "
呼入";
//sHTML += "
$SsgCRM_GetTelephoneRecord.aspx? id= %s& %s 听录音
$SsgCRM_GetTelephoneRecord.aspx? id= %s& %s 听录音
sHTML += "
播放 " + bDocQuery["source_number"].ToString() + "";
sHTML += "
" + bDocQuery["destination_number"].ToString() + "";
sHTML += "
" + bDocQuery["talk_datetime"].ToString() + "";
sHTML += "
" + bDocQuery["talk_second"].ToString() + "";
if (bDocQuery.Contains("department"))
sHTML += "
" + bDocQuery["department"].ToString() + "";
else
sHTML += "
 ";
sHTML += "
g729" +
" wav
";
sHTML += "
";
i++;
}
dam.Close();
