混淆MongoDB查询(PHP$and)

混淆MongoDB查询(PHP$and),php,mongodb,operators,Php,Mongodb,Operators,我有以下PHP代码连接到我的MongoDB实例: $connection_string = "mongodb://XXXXXXX:XXXXXX@XXXXX:XXX/myDB"; $mongo_or = new Mongo($connection_string); $db_or = $mongo_or->selectDB("myDB"); # Pick a collection $collection_or = $db_or->myCollection; $

我有以下PHP代码连接到我的MongoDB实例:

$connection_string = "mongodb://XXXXXXX:XXXXXX@XXXXX:XXX/myDB";             
$mongo_or = new Mongo($connection_string);
$db_or = $mongo_or->selectDB("myDB");

# Pick a collection
$collection_or = $db_or->myCollection;
$findArray = array('$and' => array('user.uid' => 1, 'friend_id' => 2));
$findArray2 = array('$and' => array('user.uid' => 2, 'friend_id' => 1));
$collection_or->remove($findArray);
$collection_or->remove($findArray2);

这永远不会删除任何结果-即使知道内容仍在那里,也永远不会删除。

如果您想要$and查询的良好结构,只需对其进行json\u解码:

{
"$and" : [{
  "$or" : [{
      "civility" : 2
    }, {
      "civility" : 3
    }]
}]
}

语法错误,但您不需要这些$and,数组元素之间的默认运算符是$and,这将是一个糟糕的结构,您不需要那里的
$和
,嵌套的
$或
对于索引来说非常糟糕。