0
以下のドキュメントに示すように、配列プロパティーtimestamps
を持つドキュメントがあります。私は、2つの日付の間にタイムスタンプを持つすべての文書を探したい。私の検索クエリは次のようになります。Mongoは、2つの日付の間の配列内のタイムスタンプを見つける
$subset = $db->col->find(
array(
'timestamps'=> array(
'$elemMatch'=> array(
'$gte'=> new MongoDate(strtotime('2016-05-25 13:00:00')),
'$lte'=> new MongoDate(strtotime('2016-05-25 14:00:00'))
)
)
)
);
しかし、期待されるドキュメントは返されません。私はGoogleに答えてStackOverflowを検索しようとしましたが、配列内のタイムスタンプを2つの日付の間で検索する方法を見つけることができません。
EDIT:
同じPythonのクエリが動作するため、問題はPHPであるようだ:
import datetime
f = '%Y-%m-%d %H:%M:%S'
c = db.col.find({
'timestamps': {
'$elemMatch': {
'$gte': datetime.datetime.strptime('2016-05-25 13:00:00', f),
'$lte': datetime.datetime.strptime('2016-05-25 14:00:00', f)
}
}
})
任意の助けをいただければ幸いです。
{
"month": {
"$date": 1464134400000
},
"timestamps": [
{
"$date": 1464181803000
},
{
"$date": 1464182103000
},
{
"$date": 1464182403000
},
{
"$date": 1464183003000
},
{
"$date": 1464183603000
},
{
"$date": 1464184203000
},
{
"$date": 1464184803000
},
{
"$date": 1464185403000
},
{
"$date": 1464186003000
}
],
"status_history": [
1,
1,
1,
0,
1,
1,
1,
0,
1
],
"_id": 12345
}
私はfind in array between dates in mongoとGet data between two dates mongoを見ていました。