0

简单查询不适用于我的 mongodb 数据库。

当我在控制台中运行时

db.quads.find({});

我得到了“quads”集合中的所有文档,其中之一是:

{ "subject" : "u:http://dbpedia.org/resource/Tim_Berners-Lee", "predicate" : "u:http://dbpedia.org/ontology/abstract", "object" : "l:\"Sir Timothy John Berners-Lee KBE, OM, FRS (TimBL ou TBL) é um físico britânico, cientista da computação e professor do MIT. É o criador da World Wide Web, tendo feito a primeira proposta para sua criação em março de 1989. Em 25 de dezembro de 1990, com a ajuda de Robert Cailliau e um jovem estudante do CERN, implementou a primeira comunicação bem-sucedida entre um cliente HTTP e o servidor através da internet. Berners-Lee é o diretor do World Wide Web Consortium (W3C), que supervisiona o desenvolvimento continuado da web. Também é o fundador da Fundação World Wide Web e é um pesquisador sênior e titular e fundador da cadeira de 3Com no Laboratório de Inteligência Artificial e Ciência da Computação do MIT (CSAIL). É um diretor da The Web Science Research Initiative (WSRI) e um membro do conselho consultivo do Centro de Inteligência Coletiva do MIT. Em abril de 2009, foi eleito como membro da Academia Nacional de Ciências dos Estados Unidos, sediada em Washington, D.C. Em 2004, Timothy venceu o Millennium Technology Prize, o que lhe rendeu um milhão de euros.\"@pt", "graph" : "u:http://example.org/people", "_id" : ObjectId("5134aa893fff1d490400009c") }

人们会期望运行这样的查询......

db.quads.find({"subject" : "u:http://dbpedia.org/resource/Tim_Berners-Lee"});

...我会得到至少一个文档,因为有一个带有“主题”字段的文档,其值为“u: http://dbpedia.org/resource/Tim_Berners-Lee ”。

但我什么也没得到......我也尝试了通配符查询:

db.quads.find({"subject" : "/.*Tim_Berners-Lee.*/"});

无济于事......我做错了什么?

谢谢!

4

1 回答 1

1

我能够使用这两种方法获得预期的结果:

db.quads.find({"subject" : /.*Tim_Berners-Lee.*/}); 和 db.quads.find({"subject" : "u: http://dbpedia.org/resource/Tim_Berners-Lee "});

也许您正面临一些 shell windows 编码问题,请按照您所说的列出所有文档,并确保输出作为 find 命令的输入值。如果可能,请尝试从另一台机器连接,或者如果您使用的是 windows,请尝试 cygwin,或者尝试从 linux 机器连接。

问候, 莫西

于 2013-04-27T20:18:01.773 回答