2017-02-12 45 views
0

我想找到4条有图像的帖子。我使用此代码:如何在猫鼬中工作

Post.find({}, function (err, posts) { 
    if (err) { 
     req.flash('error', 'An unknown error has occurred.'); 
     res.redirect('back'); 
    } else { 
     res.render("home", {posts}); 
     }); 
    } 
    }).exists(image, true).limit(4).sort({ date: -1 }); 

一个岗位的样子:

{ 
    "_id" : ObjectId("586e15b21f647007ec22a171"), 
    "title" : "Some title is here", 
    "category" : "node", 
    "body" : "Lorem ipsum dolor sit amet", 
    "image" : "1486300310990-14775211410_42b8d244da_o.jpg", 
} 

因此它不具有任何图像后,应跳过。 这样的:

{ 
     "_id" : ObjectId("586e15b21f647007ec22a171"), 
     "title" : "Some title is here", 
     "category" : "node", 
     "body" : "some txt" 
    } 

但它不工作的乐趣,你能帮我吗?

+0

你有没有定义的图像作为模型的一部分吗?你能展示模型吗? – notionquest

+0

是的,我有。最好找到4个图像长度大于0的帖子。 – Joseph

回答

0
Post.find({'image' : {$exists : true}}, function (err, posts) { 
if (err) { 
     req.flash('error', 'An unknown error has occurred.'); 
     res.redirect('back'); 
    } else { 
     res.render("home", {posts}); 
     }); 
    } 
}); 

尝试上面的代码。

更新的代码...

Post.find({$or : [{image: {$exists : true}},{image: ''}]}, function (err, posts) { 
     if (err) { 
       req.flash('error', 'An unknown error has occurred.'); 
       res.redirect('back'); 
      } else { 
       res.render("home", {posts}); 
       }); 
      } 
     }); 
+0

谢谢,但是我应该怎么做来检查长度?用户可以稍后删除其图像,并且图像将是“'。我希望它跳过空字符串。你知道怎么做吗? – Joseph

+0

您可以使用$或查询。让我更新答案。 – AKASH

+0

现在,它的工作。谢谢! – Joseph