Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MongoDB排序只对集合的一部分起作用_Mongodb - Fatal编程技术网

MongoDB排序只对集合的一部分起作用

MongoDB排序只对集合的一部分起作用,mongodb,Mongodb,我有一个PHP MongoDB项目。我正在使用: 共点火器 PHP MongoDB驱动程序 Xampp 我对排序方法有问题 我有这个集合(注意['order']属性): 我从中得到: function get_entries(){ $project_id = key($this->projects_model->get_project()); $data=array( 'project_id' => $project_id );

我有一个PHP MongoDB项目。我正在使用:

  • 共点火器
  • PHP MongoDB驱动程序
  • Xampp
我对排序方法有问题

我有这个集合(注意['order']属性):

我从中得到:

function get_entries(){

    $project_id = key($this->projects_model->get_project());

    $data=array(
        'project_id' => $project_id
    );

    return $this->mdb->get(
        $this->mdb->sinapsisDB->entries,
        $data,
        array('order'=>1)
    );
}
正如您所看到的,我试图使用['order']属性对结果进行排序,但返回的数组不是这样排序的,值得注意的是,前6个索引是在一个循环上同时创建的,最后一个索引(不符合顺序)稍后由一个函数创建,该函数搜索新条目的所需顺序,并进行必要的['order']操作以使其适合

起初,我认为来自vvvlad连接器的“get”方法不起作用,但在尝试时也会发生同样的情况

db.entries.find().sort({$order:1})
在Mongo客户端中

我认为这与“索引值”有一定关系,但我不理解为什么这个简单的排序方法不起作用


提前感谢您的时间:)

我刚刚在Mongo上运行了以下测试,看起来一切正常:

db.foo.drop()
db.foo.insert( { text : "blah", order : 1 } )
db.foo.insert( { text : "bl", order : 0 } )
db.foo.insert( { text : "blahblah", order : 2 } )
printjson(db.foo.find().sort( { order : 1 } ).toArray())
我不熟悉vvvlad的代码,但您的shell示例肯定存在问题

db.entries.find().sort({$order:1})
$订单
不正确(无
$


您确定vvvlad的代码支持排序吗?

您正在通过shell运行“db.entries.find().sort({$order:1})”?是不是应该是db.entries.find().sort({'order':1})?非常感谢我测试了您的建议,我还进一步阅读了MongoDB文档和PHP。我使用print_r在屏幕上显示集合,但我将最后一个['order']属性保存为字符串而不是整数,这是阻止正确排序的错误。愚蠢的错误,但发生在同时学习很多东西的时候。呵呵,非常感谢你的回答&你的时间:)。。。哦,是的,vvvlad支持排序:)我的坏一直。
db.entries.find().sort({$order:1})