You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Delphi中通过TUniQuery(UniDAC)从MongoDB获取多字段?

在Delphi中用UniDAC的TUniQuery实现MongoDB多字段查询

要实现对应MongoSH中db.myCollection.find({}, {Id: 1, Number: 1})的查询效果,你需要在TUniQuery的MongoDB命令中添加projection参数,用来指定要返回的字段。

具体代码示例

替换你原来的SQL.Text内容,加入projection配置:

UniQuery1.Close;
UniQuery1.SQL.Clear;
// 添加projection参数指定返回Id、Number字段(默认会返回_id)
UniQuery1.SQL.Text := '{"find":"myCollection", "filter":{}, "projection":{"Id":1, "Number":1}}';
UniQuery1.Open;

参数说明

  • filter:{}:表示查询集合中所有文档(和MongoSH里的第一个空对象对应),如果需要过滤条件,直接在这个对象里写筛选规则,比如你原来的{Id: 530142}
  • projection:{"Id":1, "Number":1}:指定只返回Id和Number字段,MongoDB默认会自动返回_id字段;如果不需要返回_id,可以在projection里加上"_id":0,即:
    "projection":{"_id":0, "Id":1, "Number":1}
    

带过滤条件的多字段查询示例

如果要同时保留过滤条件(比如筛选Id=530142的文档),并只返回指定字段:

UniQuery1.Close;
UniQuery1.SQL.Clear;
UniQuery1.SQL.Text := '{"find":"myCollection", "filter":{"Id":530142}, "projection":{"Id":1, "Number":1}}';
UniQuery1.Open;

内容的提问来源于stack exchange,提问作者wBB

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 14:34:54