从文档顺序中获取第一个Firestore文档(Node.js)

扬·斯沃博达

我想做的是:我想从Firestore中的集合中获取第一个文档,当涉及文档中的“描述”时,应从ZA订购。

问题:它告诉我“没有这样的文件!”。虽然应该输出1个文件。

这是代码:

getPost();

async function getPost() {

const postRef = db.collection('posts');
const doc = await postRef.orderBy('description', 'desc').limit(1).get()
.then(doc => {
  if (!doc.exists) {
    console.log('No such document!');
  } else {
    console.log('Document data:', doc.data());
  }
})
.catch(err => {
  console.log('Error getting document', err);
});

};
道格·史蒂文森

您的变量docQuerySnapshot对象(不是DocumentSnapshot)。从API文档中可以看到,它没有名为的属性exists,因此if (!doc.exists)始终为true。

由于QuerySnapshot对象始终考虑包含多个文档的可能性(即使您指定limit(1)),因此您仍然必须检查其结果集的大小以了解您获得了多少文档。您可能应该这样做:

const querySnapshot = await postRef.orderBy('description', 'desc').limit(1).get()
if (querySnapshot.docs.length > 0) {
    const doc = querySnapshot.docs[0];
    console.log('Document data:', doc.data());
}

还要注意,如果您正在使用await从返回的promise捕获查询结果,则无需使用then / catch。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

错误:无法验证Node.js中的第一个证书

如何获取immutable.js映射的第一个键(而不是值)?

MongoDB在聚合查询中获取第一个和最后一个文档

Node JS Firestore事务中的多个文档读取

通过moment.js获取每月的第一个工作日

错误:第一个标记之前的非空格。在node.js主体解析器中

为什么在下面的node js程序中S函数内的第一个for循环无限运行?

为什么我的Node.Js代码在从用户那里获取价值时没有在第一个请求中给出响应?

RethinkDB Node.js-使用另一个对象从文档的每个字段中减去值

使用Node.js从Firestore文档中删除字段

如果属性等于值,则获取列表中的第一个元素-VUE.js

从MongoDB中的所有文档中获取数组字段的第一个元素的总和

在React.js Firestore中获取文档值

Node.js:在第一个连接回调中进行连接和“ writeHead”

无法运行我的第一个node.js程序?

根据MongoDB文档中的另一个字段更新一个字段(在Node.js中使用Mongoose)

获取图像的第一个像素的颜色(JS / jQuery)

JS中的文本函数第一个参数(_)

在淘汰赛js中获取数组的第一个元素

JS for循环如何获取第一个值

Node.js async.each等待第一个循环

Node.js:第一个字符在fs.createReadStream中未定义

React JS,尝试从数组中获取第一个值时未定义错误未定义

使用 Node.js 和 Mongoose 有哪些步骤可以保存一个文档和引用第一个文档的第二个文档?

反应.js。如何仅显示获取的 API 的第一个对象?

Firestore 从单个文档中获取所有字段纯 JS

从 node.js 错误中获取 firestore 文档

如何将使用 .get() 从 firestore 获取的文档数据返回到 JS 中的另一个函数

使用 node js / javascript 从数组中获取第一个元素