我有 2 个 mongodb 集合,stu_creds
并且stu_profile
. 我首先想从电子邮件的stu_creds
位置检索所有学生记录stu_pref_contact
,然后对于那些stu_id
我想从中检索完整个人资料的学生记录stu_profile
。问题是,第一个查询返回一个 JSON 文档数组,每个文档包含一个字段,即stu_id
. 这是我的查询和结果:
db.stu_creds.find({"stu_pref_contact" : "email"}, {'_id' : 1})
结果:
[{ "_id" : ObjectId("51927cc93080baac04000001") },
{ "_id" : ObjectId("51927d7b3080baac04000002") },
{ "_id" : ObjectId("519bb011c5c5035b2a000002") },
{ "_id" : ObjectId("519ce3d09f047a192b000010") },
{ "_id" : ObjectId("519e6dc0f919cfdc66000003") },
{ "_id" : ObjectId("51b39be0c74f0e3d23000012") },
{ "_id" : ObjectId("51b39ca9c74f0e3d23000014") },
{ "_id" : ObjectId("51b39cb7c74f0e3d23000016") },
{ "_id" : ObjectId("51b39e87c74f0e3d23000018") },
{ "_id" : ObjectId("51b39f2fc74f0e3d2300001a") },
{ "_id" : ObjectId("51b39f47c74f0e3d2300001c") },
{ "_id" : ObjectId("518d454deb1e3a525e000009") },
{ "_id" : ObjectId("51bc8381dd10286e5b000002") },
{ "_id" : ObjectId("51bc83f7dd10286e5b000004") },
{ "_id" : ObjectId("51bc85cbdd10286e5b000006") },
{ "_id" : ObjectId("51bc8630dd10286e5b000008") },
{ "_id" : ObjectId("51bc8991dd10286e5b00000a") },
{ "_id" : ObjectId("51bc8a43dd10286e5b00000c") },
{ "_id" : ObjectId("51bc8a7ddd10286e5b00000e") },
{ "_id" : ObjectId("51bc8acadd10286e5b000010") }]
问题是,我认为我不能将上述数组用作$in
第二个查询的子句的一部分来检索学生资料。我必须遍历数组并创建一个新数组,它只是一个对象 id 数组而不是 JSON 文档数组。
有没有更简单的方法来做到这一点?