我有一个mongo查询,在Windows上的本地计算机上运行良好
但在使用linux的服务器上,相同的查询无法正常工作
由于不工作我的意思是它正确执行但无法找到符合此条件的数据。
MDB::alloc()->{COLL_wall}->remove(
array(
'_id' => new MongoId($wid),
'$or' => array(
array(wall_owner => $this->id),
array(wall_writter => $this->id)
),
wall_owner => $wallOwner
),
array(
'safe' => true
)
);
可能是什么问题?
答案 0 :(得分:0)
可能存在的问题:a)new MongoId($wid)
有点奇怪,很少看到MongoID得到一个参数。 $ wid是24个十六进制字符,对吗?由于MongoID默默地忽略其他所有内容并创建一个新的id,这可能是一个问题。
其次,您的数据类型是否正常?对Mongo查询的大多数不满来自于整数1与存储的字符串“1”不匹配的事实。
答案 1 :(得分:0)
最有可能的问题是你的linux上的机器mongo的版本要老得多,因此“or”语句不能在那里工作
检查您的版本并在必要时升级。