排序似乎不起作用 mongo-delphi-driver
Sorting seems doesn't work mongo-delphi-driver
这个简单的代码片段不起作用,我想按名称对文档进行排序,但返回的文档没有顺序
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 日通过最新修复解决
好的,使用 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;
我用 Marco 的修复程序修改了 github 存储库,但这未经测试。该库当前未维护,我不再拥有编译器许可证。
这个简单的代码片段不起作用,我想按名称对文档进行排序,但返回的文档没有顺序
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 日通过最新修复解决
好的,使用 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;
我用 Marco 的修复程序修改了 github 存储库,但这未经测试。该库当前未维护,我不再拥有编译器许可证。