首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为与MongoDB文档数组相关的NodeJS变量赋值

为与MongoDB文档数组相关的NodeJS变量赋值
EN

Stack Overflow用户
提问于 2020-05-21 21:47:16
回答 1查看 152关注 0票数 0

我有一个包含以下文档的MongoDB集合

代码语言:javascript
复制
> db.mycol.find()
{ "_id" : ObjectId("5ec6506171ae442136aa97d2"), "uname" : "mail1", "port" : 1000, "abc" : "test1" }
{ "_id" : ObjectId("5ec659e6c0b1cc11370d8378"), "uname" : "mail2", "port" : 1001, "abc" : "test2" }

在下面的代码中,我试图通过使用NodeJS中的distinct来获取文档字段port的数组。

代码语言:javascript
复制
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,那么就是nextPort=1002

如何将数组元素中的下一个值(唯一)赋给我的变量。另外,有没有一种方法可以像我们在MySQL中使用primary key一样,将所有唯一值都放在document字段port

EN

Stack Overflow用户

回答已采纳

发布于 2020-05-21 22:03:06

不确定这是否有帮助,但您可以尝试将输出赋给一个变量,比如"array“。然后使用nextPort = sample ray.length-1+1参见下面的代码示例:

代码语言:javascript
复制
let nextPort=0; 
let arr = [1000, 1001];
nextPort = arr[arr.length-1]+1

或者,如果您想让nextPort成为一个数组:

代码语言:javascript
复制
let nextPort=[]; 
let arr = [1000, 1001];
nextPort.push(...arr, arr[arr.length-1]+1);

上面的代码假设你的Mongo代码总是返回一个数字。

票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61935982

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档