【发布时间】:2017-01-13 21:58:21
【问题描述】:
您好,我想在联系人对象中获取所有同步标志为 true 的联系人。
I tried this solution but only returns only one sub document
我也尝试了这个解决方案,它返回所有匹配或不匹配的文档
How to find document and single subdocument matching given criterias in MongoDB collection
这里是示例文档
{
"_id" : ObjectId("57ce7d6c7387d533bfa2d45c"),
"ITBCompanyId" : 2608,
"updatedAt" : ISODate("2016-09-06T12:19:35.972Z"),
"createdAt" : ISODate("2016-09-06T08:25:16.325Z"),
"name" : "This is test",
"identifier" : "THDNOM2",
"addressLine1" : "Valencia Lahore",
"syncFlag" : true,
"orgId" : "1",
"deletedAt" : null,
"whois" : [
{
"test" : "noman"
}
],
"configuration" : [
{
"test" : "noman"
}
],
"contact" : [
{
"firstName" : "Active",
"_id" : ObjectId("57ceb04811f005420b7ed54a"),
"syncFlag" : false,
"communicationItems" : [],
"customFields" : []
},
{
"firstName" : "Active",
"_id" : ObjectId("57ceb04811f005420b7ed54b"),
"syncFlag" : false,
"communicationItems" : [],
"customFields" : []
},
{
"firstName" : "Active",
"_id" : ObjectId("57ceb44b5f8b534bc312aacd"),
"syncFlag" : true,
"communicationItems" : [],
"customFields" : []
},
{
"firstName" : "Active",
"_id" : ObjectId("57ceb457f141fd4c1c98a748"),
"syncFlag" : true,
"communicationItems" : [],
"customFields" : []
}
],
"agreement" : [
{
"test" : "noman"
}
],
"companySite" : [
{
"test" : "noman"
}
],
"companyNote" : [
{
"test" : "noman"
}
],
"type" : {
"name" : "Client"
},
"status" : {
"name" : "Active"
},
"id" : "19493",
"__v" : 0,
"_info" : {
"updatedBy" : "Omer",
"lastUpdated" : ISODate("2016-09-06T11:52:07.000Z")
}
}
预期输出:
ITBCompanyId: 1,
contact: [{
"firstName" : "Active",
"_id" : ObjectId("57ceb04811f005420b7ed54b"),
"syncFlag" : true,
"communicationItems" : [],
"customFields" : []
}]
【问题讨论】:
-
添加预期结果的文档。
-
@tarashypka 我有问题告诉过我只想找到syncFlag true的联系人对象
-
那么您的预期输出应该包含两个对象:
{ "firstName" : "Active", "_id" : ObjectId("57ceb44b5f8b534bc312aacd"), "syncFlag" : true, "communicationItems" : [], "customFields" : [] }, { "firstName" : "Active", "_id" : ObjectId("57ceb457f141fd4c1c98a748"), "syncFlag" : true, "communicationItems" : [], "customFields" : [] } -
您希望
"ITBCompanyId"、"updatedAt"和其他字段出现在集合中每个文档的输出中吗?或者您只想要集合中所有文档的唯一联系人数组? -
我只想要同步标记为 true 的联系人数组,是的,我想要 ITBCompanyId
标签: node.js mongodb subdocument