我有一个包含以下文档的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。
如何将数组元素中的下一个值(唯一)赋给我的变量。另外,有没有一种方法可以像我们在MySQL中使用primary key一样,将所有唯一值都放在document字段port中
发布于 2020-05-21 22:03:06
不确定这是否有帮助,但您可以尝试将输出赋给一个变量,比如"array“。然后使用nextPort = sample ray.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代码总是返回一个数字。
https://stackoverflow.com/questions/61935982
复制相似问题