2012-07-06 88 views
2

如果在shell命令是:MongoDB的C#CommandDocument如何添加查询

db.runCommand({"distinct":"log", "key":"cs_uri_stem"}); 

我弄清楚,相应的C#代码:

var command = new CommandDocument { 
              { "distinct", "log" }, 
              { "key", "cs_uri_stem"}, 
            }; 

但是关于下面的命令怎么办?

db.runCommand({"distinct":"log", "key":"cs_uri_stem", query:{ datetime: { $gt: new ISODate("2012-07-05T19:55:18.475Z"), $lt:new ISODate("2012-07-05T20:55:18.475Z")} }}) 

我无法弄清楚如何做到这一点在C#...

在此先感谢!

回答

1

还问及回答:

https://groups.google.com/forum/?fromgroups#!topic/mongodb-user/TKZj_Qs0W5E

实际上,有在MongoCollection一个辅助方法,你可以使用。你的第二个不同的命令可以用C#编码,如下所示:

var collection = database.GetCollection("log"); 
var query = Query.And(
    Query.GT("datetime", new DateTime(2012, 7, 5, 19, 55, 18, 475, DateTimeKind.Utc)), 
    Query.LT("datetime", new DateTime(2012, 7, 5, 20, 55, 18, 475, DateTimeKind.Utc)) 
); 
var result = collection.Distinct("cs_uri_stem", query); 
foreach (var distinctValue in result) 
{ 
    // process distinctValue 
} 
1
 Query.And(Query.GT("datetime", DateTime.UtcNow), Query.LT("datetime", DateTime.UtcNow));