【问题标题】:find all documents from mongodb collection with some attribute having value lie in an array从 mongodb 集合中查找所有具有某些属性值的文档位于数组中
【发布时间】:2020-06-27 15:54:27
【问题描述】:

我想在一个集合中找到所有具有类似属性的文档
Creator 和我有一个数组,其中包含此 creator 属性的不同值,我想要那些文档,其中该数组中的这些不同值是文档中属性 creator 的值。

我尝试通过映射数组和每个数组值来查找文档。 但由于其异步性质,我必须 promise.all 才能获得该文档数组。 但是当我将该数组从后端传递给我的反应应用程序时 它显示不正确的反应子类的错误.....

【问题讨论】:

    标签: node.js reactjs mongoose


    【解决方案1】:

    您可以使用 Mongo 中的 $in 运算符来实现它:

    db.customers.find({creator: {$in: ["faizulhassan.a@caratlane.com", "sajid.s@caratlane.com"]}})
    

    Customer 是您的collection 名称。 希望这会有所帮助..

    【讨论】:

    • 谢谢,它的工作原理与我通过映射所做的相同。但是当我将数组传递给前端反应时,它给出了一个错误。 react.development.js:1061 未捕获的错误:对象作为 React 子项无效(找到:带有键 {posts、followers、followers、_id、name、email、password、created、__v} 的对象)。如果您打算渲染一组子项,请改用数组。
    • - Reacts 表示您已将对象数组传递给视图以进行渲染,而不仅仅是数组。 - 确保您传递要在视图中呈现的数组。 - 如果它是一个对象数组,则从对象指向键以在视图中呈现它。假设您的对象数组为 [{name:'faizul'},{name:'hassan'}],说响应渲染名为 name 的键.. 在视图中使用 map 函数在数组中循环.. let response = [{name:'faizul'},{name:'hassan'}]; response.map((o,i)=>{ return( <div>{o.name}</div> ) })
    • 我已经解决了这个问题,我正在渲染对象,这就是为什么显示这个错误
    • 很高兴你找到它。
    【解决方案2】:
    const answer = collectionName.find({creator: "what you want to find"});
    
    if(!answer){
    #do something
    } else{
    #do something
    }
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-21
      • 2017-08-12
      • 1970-01-01
      • 2020-05-17
      • 2023-03-20
      • 1970-01-01
      • 1970-01-01
      • 2021-11-04
      相关资源
      最近更新 更多