2

这个简单的片段不起作用,我想按名称对文档进行排序,但返回的文档没有顺序

procedure TForm1.Button1Click(Sender: TObject);
var
  cursor : TMongoCursor;
begin

  cursor := TMongoCursor.Create(BSON([]));
  cursor.sort := BSON(['name','1']);
  if mongo.find(ns, cursor) then begin
    while cursor.next() do begin
      ShowMessage(cursor.value().find('name').value);
    end;
  end;

end;

[编辑]:通过 2017 年 6 月 15 日的最新修复解决

4

2 回答 2

1

好的,使用sort属性排序不起作用,但是使用$orderby操作员我可以做同样的事情。

如果它有用,这是一个简单的片段

procedure TForm1.Button1Click(Sender: TObject);
var
    cursor : TMongoCursor;
    bb : TBsonBuffer;
    query, b : TBson;
begin

  bb := TBsonBuffer.Create();
  bb.append('$query', BSON([]));
  bb.append('$orderby', BSON(['name',-1]));
  query := bb.finish();
  cursor := TMongoCursor.Create(query);
  if mongo.find(ns, cursor) then begin
  while cursor.next() do begin
    ShowMessage(cursor.value().find('name').value);
  end;    

end;
于 2017-06-12T09:34:45.387 回答
1

我用 Marco 的修复修改了 github 存储库,但这是未经测试的。该库目前未维护,我不再拥有编译器的许可证。

于 2017-06-15T12:31:12.063 回答