为什么当我尝试执行与 TMongoWire 演示程序非常相似的操作来加载文档时,会得到不同的结果?在创建页面时,我想获取所有公司名称并将它们(最终)加载到组合框中。这是我正在玩的代码:
d:=BSON;
q:=TMongoWireQuery.Create(MongoWire);
try
q.Query('mwx1.companies',nil);
while q.Next(d) do
begin
s := BsonToJson(d);
sl.add(d['CompanyName']);
sl.Add(TBSONDocument(d).item['CompanyName'])
end;
finally
q.Free;
end;
在我将 JSON 分配给 S 时,JSON 是完全正确的,并且 CompanyName 中有数据。那条线仅用于测试。但是接下来的两行都没有产生任何结果(尝试了各种方法来获取数据),因为它说该值为空。如果我检查 TBSONDocument(d) 它会显示所有正确的信息。所以我很困惑为什么它不起作用。有什么线索吗?
它一开始是一个空的 BSON,但是当它在第一次迭代的循环中时,它包含
'{"_id":"ObjectID(\"524547512dcf91c1dc7476cb\")","Email":"2324","CompanyName":"Test 1","Addr1":"fs","Addr2":"ertert ","城市":"iukuiuiku","州":"uikuiku","邮编":"dsf","国家":"ff","电话":"fdsd","销售人员":"sds" ,"ContactPhone":"sdf","ContactEmail":"fsdf","ContactName":"f","DateCreated":"g2","website":"34","SMS":"23" ,"Logo":"23423","Status":"qwqw","Keywords":"3423","Shortcode":"qwqw","ParentID":"阿斯达"}'