【问题标题】:Using mongojs and node.js, how to find documents using multiple attributes as criteria使用mongojs和node.js,如何使用多个属性作为条件查找文档
【发布时间】:2017-06-26 17:35:20
【问题描述】:

我正在尝试使用 find 方法返回满足多个条件的文档,如下所示:

db.issues.find({ 'title.name': name, 'title.year': year, 'title.publisher': publisher }, function(err, issues) { ...

结果我得到一个空数组。

如果我直接在 mongodb 控制台中尝试相同的查询,我会按预期返回结果。

在 mongojs 中,如果我只提供一个属性,我就可以检索结果,如下所示:

db.issues.find({ 'title.name': name }, function(err, issues) { ...

那么,如何使用多个属性执行搜索?我需要使用其他方法吗?

2014 年 2 月 2 日更新 7:56 问题架构如下:

{
    title: { name: 'Some title name', year: 1999, publisher: 'Some publisher' },
    number: "122", 
    variant: null,
    print: "1",
    year: "1999",
    certification: { type: "Some certification", grade: 10 },
    url: "http://www.someurl.com",
    sales: []
}

【问题讨论】:

  • 您能向我们展示您的问题架构吗?查询似乎很好
  • 我用问题架构更新了帖子。

标签: javascript node.js mongodb mongojs


【解决方案1】:

mongojs 处理查询的方式没有区别,因为它的目的是模仿(某种程度上)mongo shell 的行为。

您确定您的条件确实返回了一些东西吗?就目前而言,您可能在那里遇到问题。如果您仍然无法诊断此问题,请将您期望获得的结果和您的一些架构发布为编辑。不要忘记检查你的 var 的数字不是字符串,反之亦然。

【讨论】:

  • 是的,就是这样。需要将年份转换为 int。它被视为一个字符串。谢谢。
猜你喜欢
  • 2015-05-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-12
  • 1970-01-01
  • 2022-10-06
相关资源
最近更新 更多