我按如下方式建立了一个多对多关系,表达参与项目的所有成员:
new Project({
name: this.data.name,
year: this.data.year
}).setACL(acl).save().then((project) => {
this.data.team.forEach(function (userId, i, a) {
var userProjectMap = new AV.Object('UserProjectMap');
var user = AV.Object.createWithoutData('_User', userId);
userProjectMap.set('project', project);
userProjectMap.set('user', user);
userProjectMap.save();
});
wx.showToast({
title: '创建成功',
icon: 'success',
});
setTimeout(function () {
wx.navigateBack({ delta: 1 })
}, 1000);
}).catch(error => {
this.setData({ error: error.message });
});
然后通过下列方式来查询某一项目参与的所有成员:
var project = AV.Object.createWithoutData('Project', this.data.projectId);
console.log(project.get('objectId'));
var query = new AV.Query('UserProjectMap');
query.equalTo('project', project);
query.find().then(function (maps) {
maps.forEach(function (map, i, a) {
var user = map.get('user');
console.log(user.get('objectId'));
console.log(user.get('username'));
});
this.setData({team: team});
}).catch(console.error);
但是查询到的peoject和user,除了objectId返回了正确值,其余的属性均返回undefined,比如我想log出user的username,log出的是undefined,但是log出的objectId是正确的。但是我在网页上查看的时候是可以看到正确值的。
这是为什么?我哪里出错了么?