如何在Mongoose中编写一个我想在数组中搜索的查询,如果没有值,那么我想更新我的文档。我已经阅读了许多StackOverflow答案,但没有一个指定如何将它与数组操作一起使用。我的查询也在下面给出。有人可以告诉我该怎么做我已经被困在这里一段时间了。
在下面的代码中,我试图找到内部reg_ids
数组,如果它的值都不包含reg_id
这是一个字符串然后我想更新我的文档
userregidsmodel.findOneAndUpdate(
{email_id: jeeb_no, reg_ids: { $ne: reg_id } },
{$push: {reg_ids: reg_id} },
{'total_follow_notifications': 1, 'total_notifications': 1, '_id':0},
function(err, docs) {
if (err) {
console.log('Error Finding query results');
console.log(err);
res.json({success: 0, message : err});
return next(err);
} else {
if (docs) {
console.log('Login Successfull');
res.json({success : 1, message : "Login Successfull", mobile_no: mobile_no, email_id: email_id});
return next();
} else {
console.log('login Successfull app previous token is used');
res.json({success : 1, message : "Login Successfull", mobile_no: mobile_no, email_id: email_id});
return next();
}
}
});
答案 0 :(得分:1)
findOneAndUpdate
的第三个参数是一个options参数,而不仅仅是一个字段选择参数,所以你需要将你的字段选择对象包装在{select: ...}
对象中:
userregidsmodel.findOneAndUpdate(
{email_id: jeeb_no, reg_ids: { $ne: reg_id } },
{$push: {reg_ids: reg_id} },
{select: {'total_follow_notifications': 1, 'total_notifications': 1, '_id':0}},
function(err, docs) { ...