以下是我想使用mongo-php-library运行的查询, 我想将查询作为字符串传递给驱动程序。不想将json转换为php数组。
static void TestMongoShellV3()
{
var start = new DateTime(2017, 01, 01, 9, 57, 44);
var end = new DateTime(2017, 12, 01, 18, 5, 18);
string dbname = "SURVEY_POC_MOIZ";
string collname = "_survey.response";
_database = _client.GetDatabase(dbname);
var collection = _database.GetCollection<BsonDocument>(collname);
string bson = @"[
{
$group:{
_id: {
Status : '$Status',
Survey: '$SurveyName',
SurveyId: '$SurveyId'
},
Count: {$sum: 1}
}
},
{
$group:{
_id: {
SurveyName: '$_id.Survey',
SurveyId: '$_id.SurveyId',
},
Status: {$push: '$_id.Status'},
Count : { $push : '$Count' }
}
},
{
$project:{
_id: 0,
SurveyId: '$_id.SurveyId',
Survey: '$_id.SurveyName',
Status: 1,
Count: 1
}
},
{
$sort: {Survey: -1}
}
];";
var pipeline = BsonSerializer.Deserialize<BsonArray>(bson).Select(p => p.AsBsonDocument).ToList<BsonDocument>();
var result = collection.Aggregate<BsonDocument>(pipeline).ToList();
showResult(result);
}
这是我正在使用的图书馆,mongo-php
我已经看过question。
我使用mongo c#driver做了类似的事情。下面是c#代码,
{{1}}
答案 0 :(得分:0)
您无法使用new driver执行此操作,因为它不再具有execute方法。以下是文档的附加内容:
警告
此方法调用的»eval命令在MongoDB 3.0 +中已弃用。
关于这个:
不想将json转换为php数组。
这是唯一的解决方案。在执行查询之前,您可以使用json_decode
以编程方式将string
转换为array
。