每条记录都有一个 _id
字段用以唯一标志一条记录、一个 _openid
字段用以标志记录的创建者,即小程序的用户。需要特别注意的是,在管理端(控制台和云函数)中创建的不会有 _openid
字段,因为这是属于管理员创建的记录。开发者可以自定义 _id
,但不可自定义和修改 _openid
。_openid
是在文档创建时由系统根据小程序用户默认创建的,开发者可使用其来标识和定位文档。
上述是文档表述。我的问题是:当我用微信开发者工具尝试添加新的记录时,能成功添加,但是系统默认的字段_openid(包括其他如:createdAt、owner等)都是空的,这算是管理员创建的?我添加了一个体验成员,并上传小程序了体验版,体验成员真机扫码后也能添加,但是系统默认字段_openid等还是不会自动添加。何解?
// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV }) // 使用当前云环境
const db = cloud.database()
// 云函数入口函数
exports.main = async (event, context) => {
db.collection('news').add({
data:{
title:"我在峡谷做牛马",
content:"我与兰陵王不共戴天"
}
}).then(res=>{
return res
})
}
在小程序前端调用db.collection().add()才会自动添加的,云函数添加的话默认不会加上去的,可以先获取到openid再添加上去。
解决办法:小程序端直接调用db.collection().add()