如何获取 Model.countDocuments() 函数返回的文档计数并将其设置为猫鼬中的其他字段
Posted
技术标签:
【中文标题】如何获取 Model.countDocuments() 函数返回的文档计数并将其设置为猫鼬中的其他字段【英文标题】:How to get documents count returned by Model.countDocuments() function and set it to some other field in mongoose 【发布时间】:2021-01-06 18:48:39 【问题描述】:我想在更新(更新查询)集合时将以下 mongoose 函数返回的总“计数”设置到不同 mongodb 集合中的其他字段。
// 从用户集合中获取计数
User.countDocuments(age:$gte:5, function (err, count)
if (err)
console.log(err)
else
console.log("Count :", count)
);
//将count设置为StatChartMonitor集合中的字段viewCount如下
var user_id = '5e218e6811a54db030ff8f7b';
StatChartMonitor.findByIdAndUpdate(user_id, viewCount: count,
function(err, docs)
if (err)
console.log(err)
else
console.log("Updated User : ", docs);
);
猫鼬有什么方法可以获取该计数(整数)值并在更新查询中设置它?
【问题讨论】:
显示更新查询 var id = '5e218e6811a54db030ff8f7b'; StatChartMonitor.findByIdAndUpdate( id, viewCount: count , function (err, docs) if (err) console.log(err) else console.log("Updated User : ", docs); ); 我没明白,你想知道如何使用countDocuments然后更新? 我想获取“用户”集合中与条件年龄匹配的文档的计数或总数:$gte:5。然后使用此计数值,我必须更新该字段在“StatChartMonitor”集合中称为“viewCount”为 StatChartMonitor.findByIdAndUpdate(id, viewCount: count ) 请用所有信息编辑问题 【参考方案1】:async function countAndUpdate()
const count = await User.countDocuments(age:$gte:5
await StatChartMonitor.findByIdAndUpdate(id, $set: viewCount: count )
您需要添加关键字 async 和 await 以等待 Promise 被执行并访问 countDocuments 结果。
之后,您可以使用 $set
找到ByIdAndUpdate【讨论】:
感谢您的回复。但是很抱歉这个函数不会更新字段 viewcount。“id”应该传递给 findByIdAndUpdate( viewCount: count ) 答案编辑了 id 和 $set 作为更新问题 没有运气对不起。我在***.com/questions/64051687/… 创建了带有完整问题陈述的单独线程。请帮忙以上是关于如何获取 Model.countDocuments() 函数返回的文档计数并将其设置为猫鼬中的其他字段的主要内容,如果未能解决你的问题,请参考以下文章