0
如何從多個集合投影有限的字段?我有三個集合,我正在使用$ lookup,$ project。三個中,我只能使用$ project限制一個集合的字段。當我只需要3到4個場地時,剩下的兩個就成了一個整體。
let bsonMatch = BSON()
bsonMatch.append(key: jsonConstants.email, string: emailAddress)
let match = BSON()
match.append(key: "$match", document: bsonMatch)
bsonFields.append(key: jsonConstants.email, int: 1)
bsonFields.append(key: jsonConstants.compId, int: 1)
bsonFields.append(key: jsonConstants.role, int: 1)
bsonFields.append(key: jsonConstants.fullName, int: 1)
bsonFields.append(key: jsonConstants.mobile, int: 1)
bsonFields.append(key: jsonConstants.homeTele, int: 1)
bsonFields.append(key: jsonConstants.zipCode, int: 1)
bsonFields.append(key: jsonConstants.gender, int: 1)
let compObject = BSON()
compObject.append(key: jsonConstants.compName, int: 1)
compObject.append(key: jsonConstants.compId, int: 1)
compObject.append(key: jsonConstants.compAddress, int: 1)
let compProject = BSON()
compProject.append(key: "$project", document: compObject)
let compLookup = BSON()
compLookup.append(key: "from", string: dbTableConstants.companyTable)
compLookup.append(key: "localField", string: jsonConstants.compId)
compLookup.append(key: "foreignField", string: jsonConstants.compId)
compLookup.append(key: "as", string: "company")
let lookup = BSON()
lookup.append(key: "$lookup", document: bsonLookUp)
let compBson = BSON()
compBson.append(key: "$lookup", document: compLookup)
var bsonQuery = BSON()
bsonQuery.append(key: "0", document: match)
bsonQuery.append(key: "1", document: project)
bsonQuery.append(key: "2", document: lookup)
// bsonQuery.append(key: "3", document: compBson)
bsonQuery.append(key: "3", document: compLookup)
let pipline = try? BSON(json: bsonQuery.asArrayString)
print(bsonQuery.asArrayString)
guard let serverResult = userCollection.aggregate(pipeline: pipline!) else{
response.setBody(string: responseMsg(msg: msgConstants.internalServerError, success: false))
response.status = HTTPResponseStatus.internalServerError
response.completed()
return
}
在這個片段中,我只給出了兩個集合,我希望這兩個集合都只能投影選擇性字段。 第一個預測是usertable,另一個是公司表。關係:用戶屬於某個公司。所以我需要該特定用戶的必要公司的詳細信息。
請您粘貼代碼...這將讓人們更方便 – AlexWoe89
請檢查。謝謝。 –