2015-12-31 18 views
0

我已经开始创建一个小型聊天应用程序,因为即时通讯使用的是mongodb,我开始使用$ slice实现,只在我的聊天记录中获取最新的10条消息。但问题是我无法获取最新的一组数据{10条消息},(每个实例都会发生数据不匹配)。请任何人帮助我。

+1

请您详细说明一下吗? – manetsus

+0

我想先获取10组值,然后在我的聊天记录中需要其他一组10个值,但是--->当我为其他10组值设置时,会发生数据不匹配 –

+0

[限制值的数量在使用MongoDB的字段中](http://stackoverflow.com/questions/34228375/limit-number-of-values-in-a-field-using-mongodb) – styvane

回答

0

您可能需要使用负值来检索最新的元素。

$slice文档:

$切片接受若干格式,包括负值和数组参数。考虑以下示例:

db.posts.find({}, { comments: { $slice: 5 } }) 

此处,$ slice将在评论字段中选择数组中的前五项。

db.posts.find({}, { comments: { $slice: -5 } }) 

该操作返回数组中的最后五项。

+0

我想获得最新的10组值。 db.posts.find({},{comments:{$ slice:-10}})但即时获取最新的10个值,如果我想获得另一组10个值,则会发生数据不匹配。 –