【问题标题】:Need help accessing Key Values in a nested Object of Objects需要帮助访问对象的嵌套对象中的键值
【发布时间】:2020-08-31 19:25:05
【问题描述】:

所以我从一个看起来像这样的 Firestore 文档中获取数据。 {xgvppy7455eeyjllj62yuf: {…}, sorxzerz1ynvy1urmllkdk: {…}, K3N7U2ThQCPVUl4b4rWAfVJiP2d2: {…}} 加密的东西只是我用来识别文档中字段的 ID,现在它们里面有看起来像这样的对象。

K3N7U2ThQCPVUl4b4rWAfVJiP2d2:
  balance: "208843"
  description: "Rainy Day"
  name: "Rainy Day Pod"

sorxzerz1ynvy1urmllkdk:
  balance: "214352"
  description: "Sammiched"
  name: "Sammich"

如何只访问两个对象中描述键的值?

Aplogies,这是我获取文档数据的代码。

var docRef = db.collection("pods").doc("K3N7U2ThQCPVUl4b4rWAfVJiP2d2");


docRef.get().then(function(doc) {
if (doc.exists) {
    console.log("Document data:", doc.data());

【问题讨论】:

  • 我建议编辑问题以包括 1) 您现在拥有的代码 2) 使用屏幕截图的数据库中的数据,这样我们可以更清楚地看到您正在使用的数据,3) 什么您已经尝试过,但并没有按照您期望的方式工作。
  • @DougStevenson 谢谢!刚刚做了!
  • 请发布原始 JSON,我不知道为什么拥有 180k 代表的用户会要求您发布数据的屏幕截图。这不是提问的正确方式。
  • @Iwrestledabearonce 屏幕截图很有帮助,我们可以看到数据实际上是单个文档,而不是充满文档的查询。在这一点上问题不是很清楚,因为它不包括代码(并且仍然不包括代码)。不过,通常人们会提供桌面屏幕截图而不是照片。
  • {sorxzerz1ynvy1urmllkdk: {…}, K3N7U2ThQCPVUl4b4rWAfVJiP2d2: {…}, xgvppy7455eeyjllj62yuf: {…}}K3N7U2ThQCPVUl4b4rWAfVJiP2d2: {name: "Rainy Day Pod", "Day: "Rainy Day Pod", "Day: "Rainy" }sorxzerz1ynvy1urmllkdk: {description: "Sammiched", name: "Sammich", balance: "214352"}xgvppy7455eeyjllj62yuf: {description: "Sammiched", name: "Sammich", balance: "214352"}__proto__: Object 谢谢! @Iwrestledabearonce。

标签: javascript node.js google-cloud-firestore


【解决方案1】:

doc.data() 返回一个普通的 JavaScript 对象,其属性和值与文档的字段匹配。看起来您的每个随机字符串都是文档中的一个单独字段,这意味着它们将是返回对象的属性。

您可以使用this other question 中的任何技术来迭代JavaScript 对象的属性。例如:

const data = doc.data()
for (field in data) {
    console.log(field)       // logs the random field name
    console.log(data[field)) // logs the object data of that field
}

【讨论】:

    【解决方案2】:

    您可以迭代整个对象,而不考虑键(已散列)。 要迭代一个对象,你可以这样做:

    const obj = {... some data with hashed keys ...}
    
    Object.keys(obj).forEach((key) => {
        const value = obj[key];
        const description = value.description;
        // ... do something with the description;
    });
    

    【讨论】:

    • 谢谢!但由于某种原因,它只返回其中一个值!
    • 顺便说一句,这是一个非常好的答案!让它工作起来,谢谢!
    猜你喜欢
    • 1970-01-01
    • 2015-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多