我有一个名为Users的MongoDB集合。 我事先并不知道对象类型。 此集合至少有3种不同类型的对象结构。例如:
类型1:
{
"_id" : "9e1736d4-f3a1-47ed-bb51-3318129664f0",
"userid" : 6711,
"registerDate" : "2014-10-28T14:42:06",
"lastLoginDate" : "2014-10-28T14:42:06",
}
类型2:
{
"_id" : "9e1736d4-f3a1-47ed-bb51-3318129664f1",
"userid" : 6712,
"email" : "johndoe@example.com",
"username" : "john doe",
}
类型3:
{
"_id" : "9e1736d4-f3a1-47ed-bb51-3318129664f2",
"userid" : 63713,
"city" : "orange",
"state" : "new york",
"country" : "US",
}
如何从我的收藏中获取不同类型(或每种类型的第一个对象)? 因此,如果我有100万用户和3个不同的结构,我想获得3个结果。
答案 0 :(得分:0)
添加文档的字段“类型”标识类型。 然后使用db.collection.group按照您的意愿对结果进行分组。
答案 1 :(得分:0)
每种类型的问题查询,您可以
db.c.findOne({registerDate: {$existed: true}});
db.c.findOne({email: {$existed: true}});
db.c.findOne({city: {$existed: true}});
这应该非常快速和简单。 :)