技术标签: count nodejs nodeJS mongoDB
今天项目中遇到了需要通过MongoDB的count方法获取数值的情况,在网上查遍的各个论坛,然而都是轻描淡写一笔带过(其实就是扯淡),可能是MongoDB版本的原因db.collection("blogs").find({author: 'f', type: '1'}).count()根本不会返回数值 ,而db.blogs.find({author: 'f', type: '1'}).count() 是针对数据库的操作才可返回数值(比如终端里命令查询),在nodeJS里面只能用下面的方法:
官方文档表示:要通过count方法获取符合条件的记录数,得从count的回调方法中去取,而直接dbase.collection("blogs").find({***}).count() 返回的是cursor游标对象,并非数值类型;
dbase.collection("blogs").find({***}).count(function (err, result) {
// 对返回值result做你想做的操作
});
拓展:
如果要通过count方法查询多次数值时,该怎么统一 返回呢?因为count方法里的回调是异步执行的....
下面?为你解除疑难杂症:
let promise1 = new Promise((resolve, reject) => {
dbase.collection("blogs").find({author: obj.author, type: '1'}).count(function (err, result) {
if (err) {
reject();
}
data.type1 = result;
resolve();
});
});
let promise2 = new Promise((resolve, reject) => {
dbase.collection("blogs").find({author: obj.author, type: '2'}).count(function (err, result) {
if (err) {
reject();
}
data.type2 = result;
resolve()
});
});
let promise3 = new Promise((resolve, reject) => {
dbase.collection("blogs").find({author: obj.author, type: '3'}).count(function (err, result) {
if (err) {
reject();
}
data.type3 = result;
resolve()
});
});
Promise.all([promise1, promise2, promise3]).then(function () {
callback(null, data);//成功!返回查询的用户信息
});
通过promise对象统一监听状态,最终统一返回。。。
1、CSS概述 _www.omop.vip:9527/
报错提示:powershell的版本过低,要求powershell的版本是3,,现在的版本是2,于是开始了漫长的升级powershell 3.0的过程,因为在安装windows更新的时候,一直装不上,提示安装更新时发生错误:0x80240037,哔了。下面我将以ie的插件IE11-Windows6.1-KB3008923-x64.msu安装为例:1、把IE11-Windows6.1-KB3...
Description I work at NASA outer space rescue team which needs much courage and patient. In daily life, I always receive a lot of mission, and I must complete it right now. Today, team leader announc_两个三维凸包最小距离
IDEA Git拉取 vue项目更新vue项目时,记得添加到Git中,否则会报红新加 .vue 时,要注意两点:①在路由配置文件src/router/index.js中引入组件并配置组件路由。即:引入组件import 包名 下滑性 vue文件名 from ‘@你的vue文件的具体路径’,配置组件{path: ‘vue文件名’,component: 包名 下滑性 vue文件名,name: ‘包名 下滑性 vue文件名’}..._idea中使用git下载vue项目
简介 目前常用的单帧插值放大或者说单帧超分辨方法,大致上有如下几种: 1、基于边缘插值放大方式。 2、基于NLM方式。 3、事先训练大量低分辨率图像块及对应高分辨率图像图像块数据集,通过查图像块字典方式插值放大。 4、通过训练大量低分辨率图像及对应高分辨率图像,得到对应滤波器,通过该滤波器进行图像插值放大。 本篇主要介绍
1. http://www.nintex.com/get-started/trial-request,填写表格可以得到30天的免费试用。2. 在产品下拉菜单中选择Nintex workflow 2013, 邮箱必须选择企业邮箱,否则Nintex不会发送给你确认邮件。 3. 确认后,等待几分钟,会收到Nintex的确认邮件如下,包含下载地址,和30天的试用license....
本期介绍了一种超越隐喻的算法— 龙格库塔算法Runge Kutta Method (RUN)。优化领域受到基于隐喻的“伪创新”或“花哨”优化器的影响。这些老套的方法大多模仿动物的搜索趋势,对优化过程本身的贡献很小。这些方法大多存在局部高效的性能、对简单问题的验证方法存在偏差、组件之间的交互高度相似等问题。在数学基础和数学中广为人知的Runge Kutta 方法的思想基础上,引入一种新的无隐喻的基于种群的优化方法。提出了RUNge - Kutta优化器(RUN)来处理未来各种类型的优化问题。
代码执行与命令执行的区别代码执行本质上是调用后端语言(PHP,JAVA……)来执行特定代码,而命令执行本质是调用系统的命令执行的接口,与对于的不同的语言无关,只与系统的版本有关。代码执行相关函数命令执行相关函数..._命令执行和代码执行的区别
要点:- SpringBoot添加actuator和prometheus依赖,actuator暴露监听数据URI,prometheus采集并统计数据;- SpringBoot中配置prometheus数据采集Bean;- Prometheus启动文件中添加监控的后台服务信息,如数据采集间隔、服务IP:PROT等;- Grafana配置:Metrics browser配置监控的指标:包括uri、outcome等等;- Transform配置数据转换:Labels to fields配置图例名称。.._spring-boot prometheus 每天耗时统计
因为公司的表用的是自增id,而不是UUID,所以在好多时候都需要返回新插入的数据的id,所以在网上搜了一些方法,大部分都是用的xml方式来写的sql,不过本人是用的注解方式,方法比较少,所以写这篇文章来记录一下,下面是详细的方法。先说注解的方式,我的代码习惯一般是写一个dao类(Interface,不是class类),然后写一个实现类;可能有些人是把sql直接写在了注解里边,但是方法都是一样的。直..._mybatis 自增逐渐怎么
文章目录:一:链接二:脑图一:链接http://naotu.baidu.com/file/eb6447a8f33891e3b9e1679133c66b9d?token=cf9971ce4d43b39a当前链接:密码为l0Sf二:脑图
深度学习中经常看到epoch、 iteration和batchsize,下面按自己的理解说说这三个的区别:(1)batchsize:批大小。在深度学习中,一般采用SGD训练,即每次训练在训练集中取batchsize个样本训练;(2)iteration:1个iteration等于使用batchsize个样本训练一次;(3)epoch:1个epoch等于使用训练集中的全部样本训练一次;举个例子,训练集..._数据集和batchsize 一般多少比例合适