这个问题与我的非常相似:有没有办法检查其中一个数组条目是否包含 MongoDB 中的子数组?
但是,在我的一些更新中,我仍然遇到问题。我通过拉入标签的聚合器获取数据。标签看起来像这样$tags = array("red","green","blue","purple",...);
我的更新查询如下所示:
$criteria = array('_id' => new MongoId($myID));
$db->aggregation->update($criteria,
array('$addToSet' =>
array('tags' =>
array('$each' => $tags)))),
true); //add tags
信不信由你,有时它可以很好地工作,但有时却不行。您可以在下面的示例中看到哪些有效,哪些无效。
[74] => red
[75] => orange
[76] => yellow
[77] => green
[78] => Array (
[$each] => Array (
[0] => blue
[1] => indigo
[2] => purple
)
)
[79] => violet
[80] => brown
[81] => black
谁能向我解释为什么有时这会正确插入到集合的数组中,有时却不会?我正在使用 phpmoadmin(以及 MongoDB shell 版本 2.4.3 'find()')来查看插入的结果。