当前位置: 首页 > 知识库问答 >
问题:

JS中的MongoDB ObjectID

赵禄
2023-03-14

我试图使分页工作与MongoDB没有跳过();

在mongo shell中,我通过查询得到了以下结果,但在Javascript中是空的[];

我认为我做的ObjectID是错误的,我使用“mongodb ObjectID”和“mongojs”libs与Node一起使用。js。

Mongo外壳:

db.chat.find({
  _id: { $lt: ObjectId("53e901c125c68270311e5f41") },
  user_id: 1,
  target_user_id: 1,
  "$or": [{user_id: 1, target_user_id:1}]
}).sort({
  ts: -1
}).limit(5);

输出:

{ "_id" : ObjectId("53e88e1bb76e781413000029"), "user_id" : 1, "target_user_id" : 1, "message" : "Hey" }
{ "_id" : ObjectId("53e88f51b76e78141300002a"), "user_id" : 1, "target_user_id" : 1, "message" : "Hey" }
//ect.

JavaScript

var ObjectID            = require('mongodb').ObjectID;
var db                  = require("mongojs").connect(db_uri, db_collections);

//last_ts = "53e901c125c68270311e5f41"
var last_id = ObjectID.createFromHexString(last_ts);

db.chat.find({
  _id: { $lt: last_id },
  user_id: 1,
  target_user_id: 1,
  "$or": [{user_id: 1, target_user_id:1}]
}).sort({
  ts: -1
}).limit(5).toArray(function (err, docs) {
  console.log("docs:"+docs); //"docs" - no result
  console.log("err:"+err); //"err:null"

  if(docs != null){
    console.log(JSON.stringify(docs)); //"docs:[]"
  }
});

我如何得到相同的结果,与我的查询在JS?

使用文档中的$oid进行编辑:

http://docs.mongodb.org/manual/reference/mongodb-extended-json/#oid

仍然不工作...

var last_ts = "53e901c125c68270311e5f41";
db.chat.find({_id: {$lt: {"$oid": last_ts}}, user_id:1, target_user_id:1, "$or": [{user_id: 1, target_user_id:1}]}).sort({ts: -1}).limit(5)

编辑现在与简单的工作:

var last_ts = "53e901c125c68270311e5f41";
new ObjectID(last_ts)

共有1个答案

葛驰
2023-03-14

如果我没弄错的话,您可以简单地将ObjectID字符串传递给mongo查询:

db.chat.find({
    _id: { $lt: last_ts},
    user_id: 1,
    target_user_id: 1,
    "$or": [{user_id: 1, target_user_id:1}]
})
...
 类似资料:
  • graph.csv: nodes.csv: 到目前为止的代码是: 编辑:我一直在寻找替换数组内容的技术,基于其他数组ans的内容,我在PHP中找到了一个漂亮的函数,它完成了我所需要的任务:ARRAY_REPLACE。现在我需要在JavaScript/D3.js中使用它,但我似乎可以找到完全相同的解决方案或类似的解决方案。有什么想法吗?

  • 我正在学习JS中的作文概念。下面是我的演示代码。 函数将值正确分配给和。 但是,函数不将传递的值赋给。 调用函数时到底发生了什么? null null 输出: 对于矩形和圆形,标记为的行打印。 标记为的行打印矩形的和圆形的。 最终输出为: 作为对象属性的仍然是。但是,中的值是正确的。

  • 本文向大家介绍JS中的phototype详解,包括了JS中的phototype详解的使用技巧和注意事项,需要的朋友参考一下 1 原型法设计模式 在.Net中可以使用clone()来实现原型法 原型法的主要思想是,现在有1个类A,我想要创建一个类B,这个类是以A为原型的,并且能进行扩展。我们称B的原型为A。 2 javascript的方法可以分为三类: a 类方法 b 对象方法 c 原型方法 例子:

  • 本文向大家介绍JS中的hasOwnProperty()、propertyIsEnumerable()和isPrototypeOf(),包括了JS中的hasOwnProperty()、propertyIsEnumerable()和isPrototypeOf()的使用技巧和注意事项,需要的朋友参考一下 首先了解枚举属性 一般利用for~in遍历 <1>并不是所有的属性都会在for~in遍历中显示。比如

  • 问题内容: 我试图理解reactjs中的一些概念,但是我无法理解函数的嵌套。我创建了以下示例来调查我的担忧。 在下面的示例中,我呈现了一些内容,这些内容的价值来自一系列嵌套函数。但是,出现错误“未捕获的TypeError:无法读取未定义的属性’renderInnerContent’”。您能帮我了解发生了什么以及如何解决此问题吗?我的主要动机是了解如何将事物抽象为不同的功能。 问题答案: 未在该函数

  • 问题内容: 我正在寻找JS中的简单节流阀。我知道像lodash和underscore这样的库都有它,但是仅对一个函数来说,包含其中任何一个库都是过大的。 我也在检查jquery是否具有类似的功能-找不到。 我发现一个工作的节流阀,这是代码: 问题是:在油门时间结束后,它将再次触发该功能。因此,假设我制作了一个在按键时每10秒触发一次的油门如果我按键2次,则在完成10秒后仍会触发第二次按键。我不要这