我在使用 MongoDB 时遇到了麻烦。我正在尝试获取一个字段的值,其中字段名称对我来说是未知的,并使用检索到的值来检查集合中是否存在不同的文档。我只知道该字段可能包含的值模式。
让我解释一下,我有以下文档结构:
db.blogs_data.find({"_id.r":"http://blog_post_url/authors"}).pretty();
{
"_id" : {
"r" : "http://blog_post_url/authors"
},
"author:_1" : {
"u" : "People:C2CE29E7"
},
"author:_2" : {
"u" : "Organisations:0B2A962A-8D1C"
},
"rdf:type" : {
"u" : "rdf:Seq"
}
}
这里作者:_2 可以是:作者:_N(数字)。现在,上述 decument 中每个序列的详细信息都存储为单独的文档,例如:
db.blogs_data.find({"_id.r":"People:C2CE29E7"}).pretty();
{
"_id" : {
"r" : "People:C2CE29E7"
},
"rdf:type" : {
"u" : "foaf:Person"
},
"foaf:name" : {
"l" : "McCabe, Catherine"
}
}
db.blogs_data.find({"_id.r":"Organisations:0B2A962A-8D1C"}).pretty();
{
"_id" : {
"r" : "Organisations:0B2A962A-8D1C"
},
"rdf:type" : {
"u" : "foaf:Organisations"
},
"foaf:name" : {
"l" : "ABC Publications"
}
}
现在,我需要获取 /authors 的每个序列的值,其中作者值模式类似于:“Organisations*”,并使用序列中的值来检查作者详细信息文档,例如它是否确实存在。我检查了 MongoDB,它确实有 $returnKey,它说返回索引键或键, http ://docs.mongodb.org/v2.2/reference/operator/returnKey/#op._S_returnKey 但是,文件似乎对我来说也不完整而且有点混乱,比如:“如果 $returnKey 设置为 true 并且查询不使用索引来执行读取操作,则返回的文档将不包含任何字段。”
好吧,我不知道这个值在哪里的确切键,只是它里面的值。我还检查了这个MongoDB Get names of all keys in collection但是,它返回集合中的唯一键。
在我看来,Mongo 查询不会做我想做的事情,我必须编写一个 JS 脚本来做到这一点。是否有人面临相同或类似的问题?如果是 JS,应该考虑什么作为起点?
问候,