mongodb推送到php上的固定数组

时间:2013-01-22 17:20:18

标签: php mongodb

显然,在mongo的最新(不稳定)版本中,他们实现了以下内容:

https://jira.mongodb.org/browse/SERVER-991?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel

我试图让它在PHP上工作,但它不起作用。我正在使用:

    $newData = array(
        '$push' => array(
            "$array" => $obj,
            '$size' => 10
        )
    );
    $collection->update(array("_id" => new MongoId("$IDIn")), $newData);

现在,它显然无法正常工作。我认为原因是这两者中的一个:

  1. PHP驱动程序(1.3.2)尚不支持此功能,但我怀疑它,因为它只是使用服务器上定义的功能
  2. 该命令不是$ size:$ integer - 但如果是这种情况,我无法在任何地方找到它的描述。
  3. 任何人都有这个问题吗?

    提前致谢。

1 个答案:

答案 0 :(得分:0)

您可以在此处查看使用此功能的示例,来自JIRA:https://github.com/mongodb/mongo/commit/b3687e73545f6d0d04f1992119308e7ab80d44e1

这个特别感兴趣:

t.update( {_id:1}, { $push: { x: { $each: [ {a:3} ], $slice:-5, $sort: {a:1} } } } )

在该页面的下方,他们记录了代码,即:

// If we're in the "push all" case with slice, we have to decide how much of each
// of the existing and parameter arrays to copy to the final object.

你可以在JIRA的底部找到这些类型的金块,你会看到类似的东西:

  

自动添加了评论 - 2013年1月3日05:26:11 UTC   作者:{u'date':u'2013-01-03T17:19:13Z',你'':u'Alberto Lerner',你'email':u'alerner @ 10gen.com'}   消息:SERVER-991 SERVER-8008用$ slice替换$ trimTo(但现在只接受负片)。   科:硕士   https://github.com/mongodb/mongo/commit/b3687e73545f6d0d04f1992119308e7ab80d44e1