More Custom User Data Issues

I sort of got it to work as I needed to include all data not the changed data, however why do I need to wrap everything in BSON? And what is the proper way to wrap the ObjectID (companyId)?

let client = user.mongoClient("mongodb-atlas")
				let database = client.database(named: "AltoProDev0")
				let collection = database.collection(withName: "User")
				let values: [String: AnyBSON] = [
					"_partition" : AnyBSON(stringLiteral: "user=\("),//Question do we need this line
					"name" : AnyBSON(stringLiteral: self.preferenceProfileEmail),
                    "companyId" : AnyBSON(string: self.preferenceProfileCompanyId),
					"firstName": AnyBSON(stringLiteral: self.preferenceProfileFirstName),
					"lastName": AnyBSON(stringLiteral: self.preferenceProfileLastName),
					"title": AnyBSON(stringLiteral: self.preferenceProfileTitle),
					"phone": AnyBSON(stringLiteral: self.preferenceProfileContactNumber)
					filter: ["_id": AnyBSON(stringLiteral:],
					update: values
				) { (result) in
					switch result {
					case .failure(let error):
						print("Failed to update: \(error.localizedDescription)")
					case .success(let updateResult):
						print("Matched: \(updateResult.matchedCount), updated: \(updateResult.modifiedCount)")