javascript - 尝试使用 MongoDB 选择具有相同 ID 的每个文档
问题描述
所以我试图获取与相同 ID 匹配的每个文档。
这是我所做的:
app.get('/comments/:id', async (req,res)=>{
let db = await connect();
let id = req.params.id;
console.log(id);
let results = await db.collection('comments').find({postID: id});
console.log(results);
res.json(results);
});
如何发送多个具有相同 ID 的文件?我想选择postID
具有相同 ID 的每个属性
我在连接 MongoDB 时的代码:
const { MongoClient } = require('mongodb');
let connection_string = 'mongodb+srv://user:pass@host/myFirstDatabase?retryWrites=true&w=majority';
let client = new MongoClient(connection_string, {
useNewUrlParser: true,
useUnifiedTopology: true
});
let db = null
export default () => {
return new Promise((resolve, reject) =>{
if (db /*&& client.isConnected()*/){
resolve(db)
}
client.connect(err => {
if(err){
reject("Error while connecting: " + err)
}
else{
console.log("Successful connection!")
db = client.db("posts")
resolve(db)
}
});
})
};
解决方案
确保您是client
从进行连接的文件中导入的。
app.get("/comments/:id", async (req, res) => {
await client.connect(); // Simply connect() won' work.
const db = client.db("posts"); // Specify the db here
let id = req.params.id;
console.log(id);
let results = await db.collection("comments").find({ postID: id }).toArray(); // Without toArray(), it returns a cursor to the array.
console.log(results);
res.json(results);
});
数据库.js
const { MongoClient } = require("mongodb");
let connection_string = "mongodb+srv://admin:admin@cluster0.3ctoa.mongodb.net/myFirstDatabase?retryWrites=true&w=majority";
let client = new MongoClient(connection_string, {
useNewUrlParser: true,
useUnifiedTopology: true,
});
const db = function () {
return new Promise((resolve, reject) => {
client.connect((err) => {
if (err) {
reject("Došlo je do greške prilikom spajanja: " + err);
} else {
resolve("Successful connection!");
}
});
});
};
module.exports = { client, db };
而不是 importing connect
,而是 import bothclient
和db
from db.js
。
推荐阅读
- python - 调用对象名称将返回输出,但调用实际函数名称不会给出输出。为什么?
- apache-kafka - KSQL 如何从已经包含一些消息的主题中读取(使用 msgs)数据
- ios - 在 Swift 中以 50 行/秒的速度存储大量数据
- javascript - 如何更改字段属性:只读和更改按钮后保存
- xamarin.android - 在xamarin android中安装后如何知道应用程序是否第一次打开
- javascript - 如何使用扩展语法在嵌套对象上创建或替换编辑?
- scala - 使用 spark-submit 跟踪和记录/调试从 scala 二进制文件启动的纱线应用程序
- automated-tests - 空手道框架的 JSON 报告
- javascript - 我的多项目轮播在调整屏幕大小时折叠(引导)
- build - vsts中msbuild的路径是什么