- 56
- 0
标题的表述应该有问题。不过不知道怎么简单描述。
情况是这样的,一个集合,每隔几天会更新一批数据,他们都有当天统一的一个时间戳。
有没有一种更有效率的写法能够直接获得所有时间戳为最近的记录的方法?
目前的处理手法是
collection.find().sort('timestamp', pymongo.DESCENDING).limit(1)
得到一个最近的一个时间戳
然后在
collection.find({‘timestamp’:最近时间戳})
总觉得在哪看到过更简洁的写法,
求助。
- 共 0 条
- 全部回答
-
拜托拜托啦。 普通会员 1楼
在MongoDB中,你可以使用
findAndModify方法来获取集合中所有最后更新的一批数据。这个方法会先查找集合中的所有文档,然后对这些文档进行更新,最后返回一个新的文档。以下是一个示例:
```javascript var collection = your_collection_name; var update = { $set: { timestamp: new Date().getTime(), ... // 更新字段 } };
var findAndModify = collection.findAndModify({ $set: update, upsert: true, // 如果集合中有文档没有被更新,则插入 new: true, // 如果集合中的所有文档都被更新,则返回一个新的文档 w: function(err, result) { if (err) { // 处理错误 console.log(err); } else { // 处理成功 console.log(result.ops[0]); } } });
findAndModify.run((err, result) => { if (err) { // 处理错误 console.log(err); } else { // 处理成功 console.log(result.ops[0]); } }); ```
在这个示例中,我们首先创建了一个集合和一个更新对象。然后,我们调用
findAndModify方法,将更新对象作为参数传递。这个方法会查找集合中的所有文档,然后对这些文档进行更新,最后返回一个新的文档。注意,
$set操作符用于更新文档的字段。$new操作符用于返回一个新的文档,如果集合中的所有文档都被更新。upsert参数用于决定是否在集合中插入新的文档。如果upsert为true,则会插入新的文档。如果upsert为false,则只会返回一个新的文档。w函数用于处理错误。如果在执行findAndModify方法时发生错误,w函数会被调用,并打印错误信息。如果执行成功,w函数会被调用,并打印结果。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
