私は公式のC#mongodbドライバーを使用していますが、LINQをサポートしています。しかし、これをphpドライバーを使用するように変換しようとすると問題が発生します。
これはLINQクエリです。
.Where(c => DateTime.UtcNow.Subtract(c.DateRequested).TotalDays <= 14).Where(d => ((d.itemid == req.itemid) && (d.MediaType == req.MediaType)) && (d.Status != RequestStatus.Cancelled))
これを正しく行っているかどうかは100%わかりませんが、これはこれまでのところ、読み取り可能な形式での試みです。
Array
(
[$and] => Array
(
[DateRequested] => Array
(
[$gt] => MongoDate Object
(
[sec] => 1341754027
[usec] => 0
)
[$lte] => MongoDate Object
(
[sec] => 1342963627
[usec] => 0
)
)
[$and] => Array
(
[$and] => Array
(
[itemid] => 76510
[MediaType] => 0
)
[Account] => Josh
)
[Status] => Array
(
[$ne] => 3
)
)
)
そして、これが厄介な形です:
array('$and' => array('DateRequested' => array('$gt' => new MongoDate((time() - 1209600)), '$lte' =>new MongoDate(time())),'$and' => array('$and' => array('itemid' => $itemid,'MediaType' => $source),'Account' => $account),'Status' => array('$ne' => 3)))