【问题标题】:How to manupulate fetched data with another data in node.js?如何使用 node.js 中的其他数据操作获取的数据?
【发布时间】:2019-03-28 23:24:56
【问题描述】:

我是新的 Node.js。我的问题是我想从一个集合 User 中获取数据,并且我已经在另一个集合中收集了数据 Friend

    User.find({_id: {'$ne':user_id }}).then(data1 => {
        Friend.find({user_id: user_id }).then(data2 => {
         console.log(data1)
         console.log(data2)
        });
      });

现在我想在集合Frienduser_id 属性与User 集合_id 不匹配时进行过滤

从MongoDB获取数据后如何操作?

【问题讨论】:

  • 所以data2.filter(friend => data1.every(({user_id}) => user_id !== friend.user_id))是你的意思吗?
  • 您能解释一下这段代码吗?
  • 它过滤data2,仅包括那些user_id不是data1中的user_id的人......假设data2data1是数组......你使用这个词“集合”,所以我猜它们是数组,因为您使用了 filter 这个词...您能举一个 data1 和 data2 的示例吗?然后我也许可以写一个答案,并附上解释
  • Data1 是从数据库中收集的,它的响应来自数据库
  • 哪个底层数据库?看起来像 Mongo,但只是检查。根据数据库的不同,这可能在一次往返的数据库中而不是在应用程序代码中是可行的。

标签: javascript node.js


【解决方案1】:

我建议你使用async/await 来获得更简洁的代码。

async function filter(user_id) {
   let data1 = await User.find({_id: {'$ne':user_id }}).toArray();
   let data2 = await Friend.find({user_id: user_id }).toArray();
   let filteredData = data2.filter(friend => data1.every(({user_id}) => user_id !== friend.user_id));
   console.log(filteredData );
}

【讨论】:

  • 对不起,先生,我的代码中更新了一个,从用户表中它是 _id 而不是 user_id。我已经测试过,但它不起作用,我认为问题在我的代码中
  • 看,@learner 这无济于事...如何在问题中发布您的代码的结果,即某些内容已发送到控制台...所以huzzah,您已经有一些你可以发布的东西来显示你的请求收到了什么
  • 从用户集合中,我必须获取所有用户数据,并且在朋友表中我将收集与该用户成为朋友的所有数据。现在我想显示剩余的用户,这意味着我想显示add friend 建议
  • 是的,你一直在描述你是如何获取数据的,以及你想用它做什么......没有显示数据内容......就像 20 个问题......你明白我的意思吗?是在问你>?
猜你喜欢
  • 2022-11-18
  • 2021-09-28
  • 1970-01-01
  • 2015-09-05
  • 2021-12-12
  • 1970-01-01
  • 2019-02-02
  • 2021-05-12
  • 1970-01-01
相关资源
最近更新 更多