MongoDb在集合中选择不同的对象类型

时间:2014-10-28 15:12:28

标签: mongodb

我有一个名为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个结果。

2 个答案:

答案 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}});

这应该非常快速和简单。 :)