mongoose子文档生成不了_id,查询困难的解决办法
以下是我的数据库表

本来是想设置一个自增属性,比如listId,来定义我的子list,sliderlist这些,这样能确保他的唯一性,结果尝试了很久都无法成功,原生,插件都无法成功,
这两个网址是讲的我觉得比较好的,可惜没成功
https://www.cnblogs.com/IamThat/p/5668411.html
https://segmentfault.com/q/1010000011399175
然后只好用他自带的_id来做标识,这样又有很多问题,在读取跟存储中,直接导入json文件是不会生成这个id的,我用自己写的方法在list后面push+save才会
生成这个id,生成后读取的时候又有许多问题
对于_id的读取存在格式问题,这里的_id需求是ObjectId,而我们直接用很容易变成string类型。
有2种办法,
对于父元素,可以直接使用findById来查询
对于子元素,则需要转换id的格式,mongoose有专门定义好的方法直接用即可。
在这个时候还剩下的问题就是无法根据id查询子文档,找了接近一天无法解决这个问题,下面是两个相同问题的博客但是我尝试都无法解决我的问题
https://segmentfault.com/q/1010000009290543
https://www.qedev.com/bigdata/217914.html
最后只能用了一个不是办法的办法,

这里的$是占位符的问题,只有这样能返回需要的目标子文档,找不到其他的方法。
然后修改图片也无法解决,找不到匹配的图片。最后用了一种非常蠢的办法,但是能实现 ,数据量大后肯定会影响性能,现在也能看出微妙的延迟,就是根据前端传的参数,先删除后新建,因为我这两个功能是完全没问题的。
早上起来敲一下,居然找到了解决办法,果然一直卡在一个地方的时候得改改,

这样即可修改当前的
然后解决最后一个问题,点击修改的时候获取当前文件夹的图片,然后点击图片后,会预览图片。
这个的实现没想到很简单,因为我add的表单是双向数据绑定的,直接新建一个div来放置要修改的图片,添加一个v-if判断,如果add的数据存在则显示图片,不存在则不显示图片,不过奇怪的是我无法通过
this.add的判断来实现,突然想到应该是this.add我在刚开始读取到列表的时候sliderImg是空,页面找不到空的图片而导致报错,最后用了this.add.sliderImg解决的。

mongoose子文档生成不了_id,查询困难的解决办法的更多相关文章
- 关于apidoc文档生成不了的一个原因
前几天在写完API后,写注释文档,然后很习惯的去用apidoc取生成注释文档,但是奇怪的事发生了,没有注释的内容,也没有报错:注释代码如下: /* * @api {get} /applet/:id 根 ...
- Flask中无法在其他函数中查询Sqlachemy的解决办法
报错信息部分截取: File "D:\python 3.5\lib\site-packages\flask_sqlalchemy\__init__.py", line 912, i ...
- MySQl查询区分大小写的解决办法
通过查询资料发现需要设置collate(校对) . collate规则: *_bin: 表示的是binary case sensitive collation,也就是说是区分大小写的 *_cs: ca ...
- 动软数据库文档生成器 失败错误码HRESULT:0x80010105 解决办法
是否在关闭office文档模板时提示拼写错误语法检查太多而导致失败?如果是提示这个错误的话,可以将拼写检查和语法检查关掉即可.下附相关链接:http://support.microsoft.com/k ...
- Aspose.Words 直接写response导出docx文档显示文件已损坏需要修复的解决办法
使用Aspose.Words的Document.Save(HttpResponse response, string fileName, ContentDisposition contentDispo ...
- wcf使用JetEntityFrameworkProvider.dll写access数据库时,报"操作必须使用一个可更新的查询"错误的解决办法
由于users用户组无权重写access数据库,需要设置users组用户能读写access数据库.
- mongoose 查询子文档的方法
{ "__v": 1, "_id": "538f5f0f6195a184108c8bd8", "title": &quo ...
- android R 文件生成不了
在android中比较头疼的是R文件生成不了.今天总结一下R文件生成不了的一些原因和解决方法 1. xml文件有错, 如果在res文件中的xml文件有错,android不会自动生成R文件,此时仔细查看 ...
- 【Oracle】想查询相关的v$视图,但是提示表或视图不存在解决办法
原因是使用的用户没有相关的查询权限导致 解决办法: grant select any dictionary to 用户; --这个权限比较大 这个权限是最低的要求,但是可以访问到v$相关视图 ...
随机推荐
- Spring Security(三) —— 核心配置解读
摘要: 原创出处 https://www.cnkirito.moe/spring-security-3/ 「老徐」欢迎转载,保留摘要,谢谢! 3 核心配置解读 上一篇文章<Spring Secu ...
- 简单几步让CentOS系统时间同步
在使用CentOS系统的时候,我们可能会遇到时间不准的问题,那我们如何解决这个我问题呢,下面就来教大家一个CentOS系统时间同步的方法,希望大家可以解决自己所存在的疑问. CentOS系统时间同步的 ...
- 「疫期集训day5」火焰
我们就像一把穿刺敌人的利刃,把敌人开肠破肚----凡尔登高地前气势汹汹的德军 今天没有考试,挺好,有时间自己做题了 今天主要复习+学习了数据结构,列了个表: 已完成:单调队列,线段树,set/vect ...
- CF1292C Xenon's Attack on the Gangs 题解
传送门 题目描述 输入格式 输出格式 题意翻译 给n个结点,n-1条无向边.即一棵树.我们需要给这n-1条边赋上0~ n-2不重复的值.mex(u,v)表示从结点u到结点v经过的边权值中没有出现的最小 ...
- Python——assert、isinstance的用法
1.assert 函数说明: assert语句是一种插入调试断点到程序的一种便捷的方式. 使用范例 assert 3 == 3 assert 1 == True assert (4 == 4) pri ...
- 从 (a==1&&a==2&&a==3) 成立中看javascript的隐式类型转换
下面代码中 a 在什么情况下会打印 1? var a = ?; if(a == 1 && a == 2 && a == 3){ console.log(1); } 这个 ...
- 在flask中使用flask-migrate管理数据库
Flask-Migrate是一个为Flask应用处理SQLAlchemy数据库迁移的扩展,使得可以通过Flask的命令行接口或者Flask-Scripts对数据库进行操作. 安装 pip3 insta ...
- python 并发专题(七):Twisted相关函数以及实现
一.基础原理 二.基本函数 三.爬虫实现 四.web服务器与客户端实现
- redis(三):Redis 命令(python)
import redis from redis import StrictRedis redis=StrictRedis(host='localhost',port=6379,db=0,passwor ...
- CSS文本溢出,显示省略号(...)
方式1:这种方式就是必须要跟width搭配使用,当你使用的display:flex; 的时候可能会影响样式 width: 200px; overflow: hidden; /*超出部分隐藏*/ tex ...