javascript - 数组对象中的猫鼬更新项目
问题描述
我有一个类似的数据:
"_id" : ObjectId("5aff8a15fac9291cb0477c87"),
"user" : ObjectId("5adbf5ffd08592252c0efeba"),
"createdTime" : ISODate("2018-05-19T02:21:09.943Z"),
"category" : [
{
"_id" : "c1bf0790-5b0b-11e8-8c5d-cd2d06b6e60a",
"catname" : "art",
"introduction" : "The world is waiting for a new way in art",
"banner" : null
},
{
"_id" : "vhjv87t8g-11e885b0b-sjhvikawik",
"catname" : "art",
"introduction" : "The world is waiting for a new way in art",
"banner" : null
}
],
当我尝试查询数组类别中的单个对象时,如下所示
newCat = user.category.find(element => element.catname.toString() === category.catname.toString() );
Model.findByIdAndUpdate({'category._id': newCat._id}, {$set: {
"category.$.catname": catalog.catname,
"category.$.intro": catalog.introduction,
"category.$.lastUpdate": catalog.lastUpdate,
}
}, cb);
因此,要使用 catname 获取类别或使用 catname 更新数据,我在 这里发现我必须在添加后添加 _id 结果是相同的,它给了我整个数据,我不想更新整个数据我只想更新建立的对象。稍后,我研究了 dot.notation 用于数组我将变量更改为此
newCat = user.category.findIndex(element => element.catname.toString() === category.catname.toString() );
结果也是一样的,我尝试了很多路线并为此浪费了一天的时间。我希望任何人都可以找到解决此问题的方法。甚至 javasceipt 更新数组也比 mongoose 简单得多。我厌倦了在 mongodb 中使用数组。问候,谢谢。
解决方案
推荐阅读
- unix - 如何使用 grep 从目录末尾搜索文件中的模式?
- c# - 如何缩放图形?
- angular - 在角度形式数组中使用 setControl 或 patchValue 时出错
- javascript - 找不到 405 方法。在本地主机上
- sparql - 如何使用 sparql 过滤掉值取决于子查询的结果
- android - BitmapFactory 意外下采样图像
- angular6 - Angular 6 - 使用 window.location.reload() 时重复重新加载页面
- python - rtype 在 Python 中是什么意思?
- fullcalendar - FullCalendar - 垂直时间线,水平天数
- class - Java 8 检查扩展另一个对象的对象的类或实例