javascript - 有没有一种方法可以将 doc 值复制到另一个而不提取数据并发送回
问题描述
我有 2 个文档posts
和postDrafts
. 在某些时候,我想将文档postDraft
从post
. 内容类似于{body: "blah blah"}
.
因此,简单的解决方案是提取postDraft
内容,然后发送回posts
文档。这是我的代码。
export const publishDraftById = (postId) => async dispatch => {
return new Promise((resolve, reject) => {
postDraftsRef.doc(postId).get()
.then(doc => {
if (!doc.exists) {
reject('No such document!');
} else {
const draft = doc.data();
postsRef.doc(postId).update({
body: draft.body,
date_modified: new Date()
});
resolve();
}
})
.catch((err) => {
reject(err);
console.log('Error getting documents', err);
});
})
};
但我真正认为有用的是一种方法来做这样的元代码
“分配帖子(postid).body = postDraft(postid).body”
我能以某种方式解决这个问题吗?
解决方案
有没有一种方法可以将 doc 值复制到另一个而不提取数据并发送回
不,那里没有。您需要先获取文档才能将其写回。如果不这样做,就无法简单地获取文档中的属性并将其写入另一个文档中。没有字段级权限或对文档的访问。这是整个文档,或者什么都没有。
因此,如果您想读取一个字段{body: "blah blah"
,那么您将获得整个文档,而不仅仅是您将其写入另一个文档的属性。所以涉及到两个操作,一个读操作和一个写操作。
推荐阅读
- sql - 查询以包括当天+第二天直到特定时间的所有交易
- android - 从流 mp3 url 中检索图像
- php - jQuery click 函数只显示页面上的第一个值
- java - 我对如何运行 springboot 项目有疑问
- xamarin - 如何将垂直滚动添加到 Xamarin Forms 中的标签?
- sql - 可以使用 SYSDATE 广告的 SQL 确定性函数仍然被索引吗?
- node.js - Node.js 和 Mongoose - Cast to date 值失败(过滤 created_at 日期)
- git - 找出与确定的行代码有关的提交 - Git Extensions OR Visual Studio
- apache-zookeeper - 警告“可能的客户端已关闭套接字”后,giraph 仅在大图上失败
- .htaccess - 添加letsencrypt异常htaccess