Mongo db Collection 从客户端的第一个条目而不是最后一个条目中找到 returns
Mongo db Collection find returns from the first entry not from last from client side
我正在使用 mongodb 并且我正在使用一些工作正常的条件查询数据库,但结果来自第一个条目到最后一个条目,因为我想从最后添加的条目查询到数据库中的集合
TaggedMessages.find({taggedList:{$elemMatch:{tagName:tagObj.tagValue}}}).fetch()
Meteor 使用 Mongo.Collection
and Mongo.Cursor
的自定义包装版本以支持开箱即用的反应性。它还抽象了 Mongo 查询 API 以使其更易于使用。
这就是 native way of accessing elements from the end 在这里不起作用的原因。
在服务器上
为了在 Meteor 中正确使用 $natural
,您可以在服务器上使用 hint
property as option (see the last property in the documentation):
const selector = {
taggedList:{ $elemMatch:{ tagName:tagObj.tagValue } }
}
const options = {
hint: { $natural : -1 }
}
TaggedMessages.find(selector, options).fetch()
旁注:如果您需要访问“本机”Mongo 驱动程序,则需要使用 rawCollection
在客户端
在客户端上,您无法真正访问 Mongo 驱动程序,但可以访问看似相似的 API(称为 minimongo
程序包)。在那里你不会有 $natural
可用(也许在将来),所以你需要使用降序排序:
const selector = {
taggedList:{ $elemMatch:{ tagName:tagObj.tagValue } }
}
const options = {
sort: { createdAt: -1 }
}
TaggedMessages.find(selector, options).fetch()
我正在使用 mongodb 并且我正在使用一些工作正常的条件查询数据库,但结果来自第一个条目到最后一个条目,因为我想从最后添加的条目查询到数据库中的集合
TaggedMessages.find({taggedList:{$elemMatch:{tagName:tagObj.tagValue}}}).fetch()
Meteor 使用 Mongo.Collection
and Mongo.Cursor
的自定义包装版本以支持开箱即用的反应性。它还抽象了 Mongo 查询 API 以使其更易于使用。
这就是 native way of accessing elements from the end 在这里不起作用的原因。
在服务器上
为了在 Meteor 中正确使用 $natural
,您可以在服务器上使用 hint
property as option (see the last property in the documentation):
const selector = {
taggedList:{ $elemMatch:{ tagName:tagObj.tagValue } }
}
const options = {
hint: { $natural : -1 }
}
TaggedMessages.find(selector, options).fetch()
旁注:如果您需要访问“本机”Mongo 驱动程序,则需要使用 rawCollection
在客户端
在客户端上,您无法真正访问 Mongo 驱动程序,但可以访问看似相似的 API(称为 minimongo
程序包)。在那里你不会有 $natural
可用(也许在将来),所以你需要使用降序排序:
const selector = {
taggedList:{ $elemMatch:{ tagName:tagObj.tagValue } }
}
const options = {
sort: { createdAt: -1 }
}
TaggedMessages.find(selector, options).fetch()