猫鼬中文档与对象有什么区别

  介绍

这篇文章将为大家详细讲解有关猫鼬中文档与对象有什么区别,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

router.get(& # 39;/& # 39;,,功能(要求的事情,,,,下一个),{   ,//res.render(& # 39;指数# 39;,,{,标题:& # 39;表达# 39;,});   ,const  model =, mongoose.model(& # 39;房地产# 39;);   ,const  queryCretia =, {};   ,model.find (queryCretia,(呃,,文档),=祝辞,{   ,res.render(& # 39;指数# 39;,,{   标题:大敌;& # 39;表达# 39;   ,文档:文档   ,})   ,})   }); & lt; ! DOCTYPE  html>   & lt; html>   ,& lt; head>   ,& lt; title> & lt; %=, title  %祝辞& lt;/title>   ,& lt; link  rel=& # 39;样式表# 39;https://www.yisu.com/zixun/, href='/样式表/style.css '/>   

  欢迎

     
         <李>      
  身体   

在第一段代码中,通过<代码>模型。找到我们应该能够获取到根据queryCriteria获取的结果,结果应该是一个对象数组,类似于这样:

[{   ,“_id":, ObjectId (“59 bdeadb2a5c612514ee7970"),   ,“title":,“好楼层,中等装,修满5年,上门实拍“,   ,“type":,“2室1厅“,   ,“square":,“75.42平“,   ,“direction":,“朝南,,   ,“floor":,“中区/6层“,   unitPrice",:,“, 47732年,   totalPrice",:,“, 360年,   ,“location":,空,   ,“specialExplain":,“满五“,   ,“url":,“http://sh.lianjia.com//ershoufang/sh5528035.html"   ,“station":,“江杨北路“,   ,“line":,“3号线“,   ,“updateTime":,“2017 - 09 - 17, 11:24:11"   }   {   ,“_id":, ObjectId (“59 bdeadb2a5c612514ee7971"),   ,“title":,“南北户型,厨卫全明,高区采光好,装修精美“,   ,“type":,“2室2厅“,   ,“square":,“90.92平“,   ,“direction":,“朝南北“,   ,“floor":,“高区/6层“,   unitPrice",:,“, 46194年,   totalPrice",:,“, 420年,   ,“location":,空,   ,“specialExplain":,“满五“,   ,“url":,“http://sh.lianjia.com//ershoufang/sh5546221.html"   ,“station":,“江杨北路“,   ,“line":,“3号线“,   ,“updateTime":,“2017 - 09 - 17, 11:24:11"   }]

预期指数。ejs应该渲染的页面是一个ul渲染的结果,类似于

<李>

2室1厅

<李>

2室2厅

当然,理想很丰满,现实很骨感。我就是死活渲染不出来doc.type。照理说应该是不可能的,在索引。ejs中医生就是一个对象,我为什么不能获取文档的类型属性呢?这不合理,太不合理了!

老实说,这个问题我之间也是遇到过,当初我是想修改这个医生的属性,但是死活没有办法修改,当初也是花了很久找到原因。这次我就把这个问题好好地研究一下。

先说结果,以及解决方法把。我比较喜欢剧透。愿意是因为再次返回的医生是属于文档的实例,而不是一个普通的对象。也就是说它和普通的对象是不一样的,它没有普通对象的一些方法,普通对象也没有它身上的一些方法。

<强>解决方案有几种,不过究其根本都是将这种文档转化为普通的对象:

<强>方法1:

利用toObject方法

docs.forEach (doc =祝辞,{   ,return  doc.toObject ();   })

<>强方法2:

利用JSON方法,这是我想到的一个方法,具体深层原因在这就不展开了:

docs =, JSON.stringify(文档);   docs =, JSON.parse(文档);

<强>方法3:

利用精益方法:

model.find () .lean () .exec((呃,,文档),=祝辞,{   …   })

<>强上述的三种方法应该都能成功将找到获取的结果转化为普通的对象。

但是我还想知道到底文档和一个普通的对象到底有什么区别,区别在哪里呢?

我们假设找到获取的结果是文档,转化为普通对象的结果是docs1。现在我们就看一看这二者的区别。理论上文档和docs1都应该是数组,而它们中元素都应该是一个对象,我们先来看看是不是这样呢?

console.log (Object.prototype.toString.call(文档));   consoele.log (Object.prototype.toString.call(文档[0]));      console.log (Object.prototype.toString.call (docs1));   console.log (Object.prototype.toString.call (docs1 [0])

猫鼬中文档与对象有什么区别