每当文档更新时,mongo db都会对文档进行重新排序。我不希望这种情况发生,所以我发现使用order by_id可以以一致的顺序返回文档。但现在我无法分类。下面是我的查找查询,它查找特定用户创建的帖子,我正在尝试按_id.代码进行排序:
app.get('/posts/:user_id',function(req,res){
posts.find({
'creator.user_id':req.params.user_id
},[],{ sort: { '_id': -1 } },function(err,userpost){
if(err)
res.send(err);
res.json(userpost);
})
});
第二个参数是要选择的字段。您需要向第三个参数添加选项:
posts.find({'creator.user_id': req.params.user_id}, null, {sort: {'_id': -1}}, function(err,userpost) {
if(err)
res.send(err);
res.json(userpost);
});
或者,您可以使用sort()
功能:
posts.find({'creator.user_id': req.params.user_id}).sort({'_id': -1}).exec(function(err,userpost) {
if(err)
res.send(err);
res.json(userpost);
});
您可以在文档中找到更多示例。
我想知道mongoose是否有一些方法可以通过id集更新多个文档。例如: 我想知道的是,如果猫鼬能做这样的事情: 其中,ids是一个id数组,如['id1','id2','id3']-示例数组。对于find,同样的问题。
问题内容: 假设我在猫鼬中运行此查询: 这行不通! 问题答案: 在发行版本中,按猫鼬排序已得到发展,因此其中某些答案不再有效。从Mongoose 的 4.1.x 版本开始,可以通过以下任何一种方式对字段进行降序排序: 对于升序排序,省略了对字符串版本或使用值的前缀,或。
问题内容: 假设我有一些Schema,其中有一个像这样的虚拟字段 在查询中是否可以按虚拟字段对结果进行排序?就像是 当我尝试此操作时,结果很简单,无法排序… 问题答案: 您将无法按虚拟字段进行排序,因为它们没有存储到数据库中。 虚拟属性是很方便使用的属性,但不会持久存在于mongodb中。 http://mongoosejs.com/docs/2.7.x/docs/virtuals.html
问题内容: 我只是想按ID对评论进行排序,但是这样做并不幸运。无法弄清楚该怎么办,因为这使我感到困惑: 你们碰巧知道我如何通过DESC中的ID来订购评论吗?谢谢! 问题答案: 首先,您要进行两次相同的操作。这是不必要的,因为您可以计算行数并从单个查询中获取数据。除此之外,用注释表的唯一ID替换您,即可设置好。替换为以颠倒排序顺序。
问题内容: 我在解决此mongodb(猫鼬)问题时遇到很多困难。 存在此模式“推荐”(用户名,roomId,ll和日期),其集合包含对用户的推荐。 我需要获取最推荐的房间列表(按roomId)。下面是模式和我尝试过的猫鼬查询解决方案。 问题答案: 从聚合管道返回的结果只是普通对象。因此,您将排序作为流水线阶段而不是作为单独的操作进行: 因此,也可以使用多种流水线运算符 或 或 和其他东西。这些可以
问题内容: 和猫鼬有什么区别?参考哪个更好? 问题答案: 从文档中: Mongoose默认情况下为您的每个模式分配一个id虚拟获取器,该获取器将文档_id字段强制转换为字符串,对于ObjectIds,则返回其hexString。 因此,基本上,getter返回文档的字符串表示形式(默认情况下将其添加到所有MongoDB文档中,并且默认类型为)。 关于什么是更好的引用,这完全取决于上下文(即,您想要