继续我的项目,我需要将一些SQL语句翻译成mongoDB
我的SQL语句是:
Delete from 'table' where proc_id = $xxx and (day_id < $day OR day_id > $anotherDay)
现在我的条件数组是:
$condicion = array(
'proc_id' => $xxx,
'$or' => array(
'day_id' => array(
'$lt' => $day,
'$gt' => $anotherDay
)
)
);
在mongo集合中删除的功能不能删除...
请帮忙吗?
答案 0 :(得分:2)
每个&#34; day_id&#34;将在其自己的$or
论证中:
$query = array(
'proc_id' = > $xxx,
'$or' => array(
array( 'day_id' => array ( '$lt' => $day ) ),
array( 'day_id' => array ( '$gt' => $anotherDay ) ),
)
)
这就是$or
条件如何作为&#34;列表&#34;可能的表达方式。
JSON语法更清晰可视化:
{
"proc_id": $xxx,
"$or": [
{ "day_id": { "$lt": $day } },
{ "day_id": { "$gt": $anotherDay }}
]
}
由于&#34; list&#34;之间存在非常明显的区别。和一个&#34;对象&#34;定义。 $or
条件是&#34;列表&#34; &#34;对象&#34;,这意味着您列出完整条件,就像它本身就是一个查询一样。因为这不是在$elemMatch
内调用的。
当然&#34; DELETE&#34; part是.remove()
方法:
$collection->remove($query)
核心文档SQL to MongoDB Mapping Chart中有一些常规示例和资源,如果这些示例没有立即帮助,则链接的文章和演示应该如此。