Node.js 从mongo添加要查找()的字段后无法检索数据
我开发了一个代码,可以从文件系统中检索文件路径存储在mongo数据库中的所有视频:Node.js 从mongo添加要查找()的字段后无法检索数据,node.js,mongodb,Node.js,Mongodb,我开发了一个代码,可以从文件系统中检索文件路径存储在mongo数据库中的所有视频: app.get("/myvideos", function(request, result){ database.collection("videos").find({}).toArray(function(error, videos){ result.render("myvideos", { "isLogin&quo
app.get("/myvideos", function(request, result){
database.collection("videos").find({}).toArray(function(error, videos){
result.render("myvideos", {
"isLogin": request.session.user_id ? true : false,
"videos": videos
});
});
});
上面的代码正确地检索了文件。但是,我希望检索特定用户的文件。我的数据库架构是:
{
"_id" : ObjectId("60914d02185c2a08add68fa2"),
"user" : {
"_id" : ObjectId("60914c73185c2a08add68fa0"),
"name" : "Saumitra Lele",
"image" : "",
"subscribers" : 0
},
"filePath" : "public/videos/1620135170700-bigbuck.mp4",
"thumbnail" : "public/thumbnails/1620135170700-Photo - Saumitra Lele.jpeg",
"title" : "First video uploaded",
"description" : "First video uploaded by Saumitra Lele",
"tags" : "Saumitra Lele video",
"category" : "Technology",
"createdAt" : 1620135170708,
"minutes" : 0,
"seconds" : 32,
"hours" : 0,
"watch" : 1620135170708,
"views" : 0,
"playlist" : "",
"likers" : [ ],
"dislikers" : [ ],
"comments" : [ ]
}
但是,当我尝试检索某个特定用户的文件时,例如,它不起作用:
app.get("/myvideos", function(request, result){
database.collection("videos").find({user:{_id:{$in:[user._id]}).toArray(function(error, videos){
result.render("myvideos", {
"isLogin": request.session.user_id ? true : false,
"videos": videos
});
});
});
我找到了解决办法。这起到了作用: 当用户会话登录时,我创建了一个新变量来存储用户名,如下所示:
request.session.user_name = user.name
然后使用上述方法进行比较,如下所示:
app.get("/myvideos", function(request, result){
//var logInId = request.session.user_id;
database.collection("videos").find({"user.name":request.session.user_name}).sort({
"createdAt": -1
}).toArray(function(error, videos){
result.render("myvideos", {
"isLogin": request.session.user_id ? true : false,
"videos": videos
});
});
});
上面的工作正常 请尝试{“user.\u id”:{$in:[user.\u id]}
与确切的字段匹配。