Mongoose findOne as : Array = [FindOne , FindOne, FindOne ,FindOne, FindOne...] ,使用 ExpressJs

Posted

技术标签:

【中文标题】Mongoose findOne as : Array = [FindOne , FindOne, FindOne ,FindOne, FindOne...] ,使用 ExpressJs【英文标题】:Mongoose findOne as : Array = [FindOne , FindOne, FindOne ,FindOne, FindOne...] , Using ExpressJs 【发布时间】:2021-12-04 08:31:20 【问题描述】:

我的用户登录具有特殊的_id,然后在网络应用程序中进行任何激活时,例如通过一些考试或上传任何内容都会添加为带有iduse 的数据库iduse 是什么意思? :对于我的应用程序,任何 Schema 都有一个带有原始 _id 的 iduse。这只是为了了解用户以及您在应用程序网络中所做的事情。好的,新的我想用findOne keywork 找到所有相同的iduse。在猫鼬中:

    var iduser = current.id.user //that mean the _id of user who login 
    var something = await storescors16.findOne( iduser )

如你所知,我有不止一个 iduser。我想用猫鼬中的findOne关键字找到它。

输出为:


  _id: new ObjectId("616ad9b3bc8e8dkjfbvoue"),
  iduser: ' 616ab2006cb743bc31bf2590',
  level: '3',
  day: 'some',
  date: '2021-10-13',
  time: '7 : 30',
  objectif: 'something ',
  __v: 0



  _id: new ObjectId("616ad9b3b52942942484bvoueq49"),
  iduser: ' 616ab2006cb743bc31bf2590',
  level: '3',
  day: 'some',
  date: '2021-10-13',
  time: '7 : 30',
  objectif: 'something ',
  __v: 0



  _id: new ObjectId("616ad9b3hbdfiw5169333333jfbvoueq9c"),
  iduser: ' 616ab2006cb743bc31bf2590',
  level: '3',
  day: 'some',
  date: '2021-10-13',
  time: '7 : 30',
  objectif: 'something ',
  __v: 0




  _id: new ObjectId("611111111111doufbwoeurgbu6"),
  iduser: ' 616ab2006cb743bc31bf2590',
  level: '3',
  day: 'some',
  date: '2021-10-13',
  time: '7 : 30',
  objectif: 'something ',
  __v: 0

NodeJs 获取数据

router.get('/result', auth, async(req, res) => 
  
    var ids = req.session.user._id

    var points = await model.findOne( ids )

    res.render('./options/result', 
        notes: ponts,
    )
);

为了显示它使用 ejs :

<% for (var i = 0; i < notes.length; i++)  %>
                    <div class="child">
                        <div class="itms sld1">
                            <%=notes.objectif%>
                        </div>
                        <div class="itms sld">
                            <%=notes.time%>
                        </div>
                        <div class="itms sld">
                            <span>
                                <%=notes[i].date%>
                            </span>
                        </div>
                        <div class="itms sld">
                            <%=notes[i].day%>
                        </div>
                        <div class="itms sld">
                            <%=notes[i].level%>
                        </div>
                    </div>
                    <%  %>

【问题讨论】:

【参考方案1】:

顾名思义,findOne 实际上会返回一个文档,这将是列表中第一个符合您的条件的文档。

如果你想获取一个文档数组,请使用find 方法:)

var points = await model.find( iduser: ids )

【讨论】:

什么都不返回! 可能使用了错误的字段。我已经更新了评论。再试一次。

以上是关于Mongoose findOne as : Array = [FindOne , FindOne, FindOne ,FindOne, FindOne...] ,使用 ExpressJs的主要内容,如果未能解决你的问题,请参考以下文章

承诺问题:使用 Q.nfcall() 调用 mongoose.findOne()

如何使用mongoose findOne

mongoose.findOne() 后数组被清除

如何模拟像findOne()这样的mongoose查询?

mongoose.findOne() 返回 null

从另一个 findOne 函数中的 findOne mongoose 获取数据