I have multiple documents in the collection then I need to find the particular value inside a single document. Is there any way, we can do this? Thanks for any help.
这是我需要从整个集合中获取某些特定值的以下文档。它有四个集合,我们需要为集合中的特定文档找到一个值。
{
"A":{
"A1":"Value A1"
},
"B":{
"B1":"Value B1"
},
"C":{
"C1":"Value C1"
},
"D":{
"D1":"Value D1"
}}
I want to get Value of D1 in the above collection. Is there any way to find it in as single query.
答案 0 :(得分:1)
我有点困惑,但也许你想要projections。你会做这样的事情(使用java driver):
findIterable = collection.find(eq("_id", "some id")).projection(include("D.D1"));
这样,您只能获得与查询匹配的一条记录,而只返回id
和D.D1
。您当然可以更改查询以获取更多只返回指定字段的记录。
如果您的意思是其他,请澄清。
编辑:我可以看到上面的答案,所以请考虑使用exists
运算符,例如:
findIterable = collection.find(exists("D1")).projection(include("D1"));
这样,您只获得具有此字段的记录,并且仅为它们(及其ID)返回此字段。