uniapp连接mysql数据库_uniapp云数据库问题

博客表包含了一个cate_id,贴上blogvote表

我看文档,关联表用lookup。但是没法加条件,如果用addFields,又不知道怎么继承当前查询的blog_id,还有一个就是查询数量的,好像也只能用addFields

·回复

·回复

db_init.json

{

"blog": {

"data": [{

"_id": "blog-1",

"content": "11111111"

},

{

"_id": "blog-2",

"content": "22222222"

},

{

"_id": "blog-3",

"content": "33333333"

}

]

},

"zan": {

"data": [

{

"_id": "zan-1",

"blogId": "blog-1",

"userId": "user-1"

},

{

"_id": "zan-2",

"blogId": "blog-2",

"userId": "user-2"

},

{

"_id": "zan-3",

"blogId": "blog-1",

"userId": "user-2"

}

]

},

"user": {

"data": [

{

"_id": "user-1",

"name": "user-name-1"

},

{

"_id": "user-2",

"name": "user-name-2"

}

]

}

}

云函数代码

use strict;

const db = uniCloud.database()

exports.main = async () => {

let userId = user-1

const $ = db.command.aggregate

let res = await db.collection(blog).aggregate().lookup({

localField: _id,

foreignField: blogId,

from: zan,

as: zanList

}).addFields({

zanCount: $.size($zanList),

zaned: $.anyElementTrue([$.map({

input: $zanList,

as: zanItem,

in: $.eq([$$zanItem.userId, userId])

})])

}).project({

zanList: 0

}).end()

return res

};

博客表包含了一个cate_id,贴上blogvote表 我看文档,关联表用lookup。但是没法加条件,如果用addFields,又不知道怎么继承当前查询的blog_id,还有一个就是查询数量的,好像也只能用addFields ·回复 ·回复 db_init.json { "blog": { "data": [{ "_id": "blog-1", "content": "11111111" }, { "_id": "blog-2", "content": "22222222" }, { "_id": "blog-3", "content": "33333333" } ] }, "zan": { "data": [ { "_id": "zan-1", "blogId": "blog-1", "userId": "user-1" }, { "_id": "zan-2", "blogId": "blog-2", "userId": "user-2" }, { "_id": "zan-3", "blogId": "blog-1", "userId": "user-2" } ] }, "user": { "data": [ { "_id": "user-1", "name": "user-name-1" }, { "_id": "user-2", "name": "user-name-2" } ] } } 云函数代码 use strict; const db = uniCloud.database() exports.main = async () => { let userId = user-1 const $ = db.command.aggregate let res = await db.collection(blog).aggregate().lookup({ localField: _id, foreignField: blogId, from: zan, as: zanList }).addFields({ zanCount: $.size($zanList), zaned: $.anyElementTrue([$.map({ input: $zanList, as: zanItem, in: $.eq([$$zanItem.userId, userId]) })]) }).project({ zanList: 0 }).end() return res };
经验分享 程序员 微信小程序 职场和发展