Php Yii2 MongoDB查询不工作
我以前在数据库中使用MySQL,最近才开始使用MongoDB。我一直在将我的查询转换为MongoDB格式,但在转换过程中遇到了一个问题 我想获取特定用户的工资条id,其中工资条生成的日期在特定工资周期的开始日期和结束日期之间。以下是原始查询MySQL:Php Yii2 MongoDB查询不工作,php,mysql,mongodb,yii2,Php,Mysql,Mongodb,Yii2,我以前在数据库中使用MySQL,最近才开始使用MongoDB。我一直在将我的查询转换为MongoDB格式,但在转换过程中遇到了一个问题 我想获取特定用户的工资条id,其中工资条生成的日期在特定工资周期的开始日期和结束日期之间。以下是原始查询MySQL: public function getPayslipDetails() { $time = date_default_timezone_set('Asia/Manila'); $time = date('Y/m/d', tim
public function getPayslipDetails()
{
$time = date_default_timezone_set('Asia/Manila');
$time = date('Y/m/d', time());
$session = Yii::$app->session;
return $this->hasOne(Payslip::className(), ['user_id' => 'user_id'])->where('date_generated BETWEEN :start_time AND :end_time', array(':start_time' => $session['start'], ':end_time' => $session['end']));
}
public function getPayslipID()
{
return $this->payslipDetails ? $this->payslipDetails->payslip_id : '';
}
现在,这里是我对MongoDB的转换查询:
public function getPayslipDetails()
{
$time = date_default_timezone_set('Asia/Manila');
$time = date('Y/m/d', time());
$session = Yii::$app->session;
return $this->hasOne(Payslip::className(), ['user_id' => '_id'])->where(array('date_generated' => array('$in' => array($session['start'], $session['end']))));
}
public function getPayslipID()
{
return $this->payslipDetails ? $this->payslipDetails->_id : '';
}
请注意,返回语句是不同的。我想知道我的MongoDB查询是否正确。它也不会返回任何错误
非常感谢您的回复。操作员选择字段值等于指定数组中任何值的文档。它并不等同于MySQLBETWEEN
使用和操作
public function getPayslipDetails()
{
$time = date_default_timezone_set('Asia/Manila');
$time = date('Y/m/d', time());
$session = Yii::$app->session;
return $this->hasOne(Payslip::className(), ['user_id' => '_id'])->where(array('date_generated' => array('$gte' => $session['start']), 'date_generated' => array('$lte' => $session['end'])));
}
public function getPayslipID()
{
return $this->payslipDetails ? $this->payslipDetails->_id : '';
}
我不确定php mongodb的语法,但我认为这应该会有所帮助。我发现了这一点,您知道如何在视图中使用函数getPosts吗?