检查Javascript中对象数组中的键是不是?
Posted
技术标签:
【中文标题】检查Javascript中对象数组中的键是不是?【英文标题】:Check if a key in array of objects in Javascript?检查Javascript中对象数组中的键是否? 【发布时间】:2020-11-19 00:28:38 【问题描述】:我尝试检查一个值是否在数组的对象中。之后我推送的对象是值不在数组中。我该怎么做?
router.post('/save', (req, res) =>
let userId = req.user.id
let dataPushSave = req.body.idSave
let dataPushSaveObj = idSave: dataPushSave
User.findById(userId, (err, user) =>
if (user.favorites.idSave !== dataPushSave)
user.favorites.push(dataPushSaveObj)
user.save()
)
我的猫鼬模型:
const User = new Schema(
firstName:
type: String,
required: true
,
favorites: [
_id: Object,
idSave: String
]
);
【问题讨论】:
like this? 【参考方案1】: const User = new Schema(
firstName:
type: String,
required: true
,
favorites: [
_id: Object,
idSave: String
]
);
从上述架构中,从收藏夹中删除 _id: Object。 我会推荐下面的架构
const User = new Schema(
firstName:
type: String,
required: true
,
favorites:
type: [new Schema(
idSave: type: String ,
, _id: false )]
);
然后使用 $addToSet 运算符确保收藏夹数组中没有重复项。
let user;
User.findByIdAndUpdate(
userId,
$addToSet: favorites: dataPushSaveObj ,
new: true , // this option will make sure you get the new updated docc
(err, doc) =>
if (err) console.error(err);
user = doc;
);
【讨论】:
我有一个Tried to set nested object field
favorites` 到数组 [object Object]
和严格模式设置为 throw.` 与您的解决方案以上是关于检查Javascript中对象数组中的键是不是?的主要内容,如果未能解决你的问题,请参考以下文章
用 Javascript 中的键值对重构对象数组并输出或发出它以用 mongoose 和 MongoDB 保存它?
如何根据 JavaScript 中的值检查对象是不是在数组中?
使用Javascript检查JSON对象是不是包含值[重复]