Mongoose,获取数组中元素的位置

时间:2016-05-20 18:23:25

标签: node.js mongodb mongoose

我正在开发应用程序的消息传递部分。

我有schema代表对话。它包含一个ObjectId数组,每个ObjectId引用一条消息。

我希望用户向我的API发送消息_id,以便我可以检索阵列上的所有消息_id 后发送的消息。 所以他可以用他还没有的所有消息进行更新。

我可以在_id数组中找到他messages: [ObjectId]public void onTokenRefresh() { // Get updated InstanceID token. String refreshedToken = FirebaseInstanceId.getInstance().getToken(); Log.d(TAG, "Refreshed token: " + refreshedToken); // TODO: Implement this method to send any registration to your app's servers. sendRegistrationToServer(refreshedToken); 数组中的位置吗?

1 个答案:

答案 0 :(得分:2)

Mongo不支持在服务器上使用此类查询,因此如果采用这种方法,则必须在应用程序中执行此操作。

您可能想要考虑其他可能的架构。首先,在您拥有最后一个ObjectId的位置后,您将如何进行后续查询?您可以使用_id中编码的时间戳直接查询消息集合,以仅返回更新的消息:

db.messages.find({_id: {$gt: lastViewedMessage._id}})