javascript - 将值分配给相对于 MongoDB 文档数组的 NodeJS 变量
问题描述
我有一个包含以下文档的 MongoDB 集合
> db.mycol.find()
{ "_id" : ObjectId("5ec6506171ae442136aa97d2"), "uname" : "mail1", "port" : 1000, "abc" : "test1" }
{ "_id" : ObjectId("5ec659e6c0b1cc11370d8378"), "uname" : "mail2", "port" : 1001, "abc" : "test2" }
在下面的代码中,我试图通过在 NodeJS 中port
使用来获取文档字段数组。distinct
var nextPort=0;
MongoClient.connect(url, function(err, db) {
if (err) throw err;
var dbo = db.db("mydb");
dbo.collection("mycol").distinct('port', function(err, result) {
if (err) throw err;
console.log(result);
db.close();
});
});
上面的代码给出了一个输出 [ 1000, 1001 ]
现在,我有一个名为的变量,nextPort
我希望它具有已经存在的端口的下一个值(应该是唯一且未使用的),即如果数组的最后一个元素是1001
then nextPort=1002
。
如何将数组元素中的下一个值(唯一)分配给我的变量。还有一种方法可以port
像我们primary key
在文档字段中一样拥有所有唯一值MySQL
解决方案
不确定这是否会有所帮助,但您可以尝试将输出分配给变量,例如“数组”。然后使用 nextPort = array[array.length-1]+1 参见下面的代码示例:
let nextPort=0;
let arr = [1000, 1001];
nextPort = arr[arr.length-1]+1
或者如果你想让 nextPort 成为一个数组:
let nextPort=[];
let arr = [1000, 1001];
nextPort.push(...arr, arr[arr.length-1]+1);
上面的代码假设你的 Mongo 代码总是返回一个数字。
推荐阅读
- notepad++ - 在 Octave 6.2.0 (GUI) 中使用 Notepad++ 自定义文件编辑器打开特定的 .m 文件
- ms-access - MS Access 表单日期/时间输入问题
- airflow - 有没有办法在 GKE 上启动具有稳定 IP 地址的 Airflow 工作人员?
- vue.js - 使用 EventBus 发送数据
- c++ - 在 OpenCV4 中找不到对象
- postgresql - SQLAlchemy 按时间字符串过滤
- docker-compose - docker-compose 为每个服务配置文件设置环境
- python - 从文件中读取文本并使用 python 附加到 selenium 中的链接
- python - 导入包python
- javascript - 将 RN 的 Native WebView 'postMessage' 反应为空的 Web 消息