【发布时间】:2020-09-08 04:05:16
【问题描述】:
我有一个包含以下文档的 MongoDB 集合
> db.mycol.find()
{ "_id" : ObjectId("5ec6506171ae442136aa97d2"), "uname" : "mail1", "port" : 1000, "abc" : "test1" }
{ "_id" : ObjectId("5ec659e6c0b1cc11370d8378"), "uname" : "mail2", "port" : 1001, "abc" : "test2" }
在下面的代码中,我试图通过在 NodeJS 中使用 distinct 来获取文档字段 port 的数组。
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。
如何将数组元素中的下一个值(唯一)分配给我的变量。还有一种方法可以在文档字段port 中拥有所有唯一值,就像我们在MySQL 中拥有primary key 一样
【问题讨论】:
标签: javascript arrays node.js mongodb mongodb-query