如何使用 mongodb (node.js) 在集合中创建一个包含所有值的数组
Posted
技术标签:
【中文标题】如何使用 mongodb (node.js) 在集合中创建一个包含所有值的数组【英文标题】:How to make an array of all the values inside a collection with mongodb (node.js) 【发布时间】:2019-03-11 14:57:00 【问题描述】:我不断收到未决的承诺。
var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/";
MongoClient.connect(url, useNewUrlParser: true , function(err, db)
if (err) throw err;
var dbo = db.db("mydb");
var gr = dbo.collection("collectionname").distinct("name");
// var everyrecord = dbo.collection("collectionname").find().toArray();
console.log(gr);
db.close();
);
【问题讨论】:
【参考方案1】:如果你让函数异步,你可以等待结果:
MongoClient.connect(url, useNewUrlParser: true , async function(err, db)
// ...
var gr = await dbo.collection("collectionname").distinct("name");
console.log(gr);
// ...
);
【讨论】:
@f.pythonlover 其他(非工作)答案被标记为解决方案的任何原因?【参考方案2】:您可以通过使用 .toArray() 来实现这一点,
var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/mydb";
MongoClient.connect(url, useNewUrlParser: true , function(err, db)
if (err) throw err;
db.collection("collectionname").distinct("name").toArray(function (error, response)
console.log(error);
console.log(response);
);
);
【讨论】:
MongoClient.connect(url, useNewUrlParser: true , function(err, db) if (err) throw err; var dbo = db.db("mydb"); dbo.collection( "collectionname").distinct("name").toArray(function (error, response) console.log(error); console.log(response); ); );这不起作用?我错过了什么? 它说 toarray 不是一个函数 你没有错过任何东西。 Promise 没有 toArray 方法。看看我的 async/await 建议——假设你的节点版本支持它。【参考方案3】:var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/";
MongoClient.connect(url, useNewUrlParser: true , function(err, db)
if (err) throw err;
var dbo = db.db("mydb");
var gr = dbo.collection("collectionname").distinct("name");
gr = gr.toArray();
// var everyrecord = dbo.collection("collectionname").find().toArray();
console.log(gr);
db.close();
);
【讨论】:
Promises 上没有 toArray 方法。查看***.com/questions/20858299/…以上是关于如何使用 mongodb (node.js) 在集合中创建一个包含所有值的数组的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 mongodb (node.js) 在集合中创建一个包含所有值的数组
如何使用 Node.js 在 MongoDB 中使用 cursor.forEach()?
如何使用 Node.js 在 MongoDB 中使用 cursor.forEach()?