【问题标题】:Sailsjs find where field is not setSailsjs 查找未设置字段的位置
【发布时间】:2016-03-18 20:12:18
【问题描述】:

我在 SailsJs 中有一个项目,使用带有 mongodb 数据库的水线。 我定义了一些字段,它们不是必需的字段。 我需要搜索未定义该字段的记录。例如:

{id: 10, name: "jj"}
{id: 11, name: "kk", surname: "sr"}

我想搜索未定义姓氏的位置。有人知道怎么做吗?

我试过了

{surname: null}
{surname: ''}

什么都不会产生预期的结果。

【问题讨论】:

  • {surname: undefined} 似乎可以解决问题。有人可以确认这没问题吗?
  • find(surname:'') 会给你哪个姓氏为空,而 find(surname:null) 和 find(surname:undefined) 会给你哪个姓氏为空。这适用于我!!如果您仍然有这个问题。那么请添加您的模型和控制器代码!
  • surname: undefined 给我带来了未设置“姓氏”字段的记录。 Null 或 "" 带来设置字段但为空的记录

标签: mongodb sails.js waterline


【解决方案1】:

我想你想要的是Model.find( {where: {surname: null } }) 看看这个链接到Waterline Query language documentation

【讨论】:

    【解决方案2】:

    我认为你想要的是 $exists: false。水线目前不支持。你可以使用 Model.native() 来使用它。

    Waterline native()

    它返回 MongoDB 集合,您可以在那里使用本地 MongoDB 操作:

    MongoDB $exists

    完整的代码看起来更像这样

    Model.native(function(err, collection) {    
        if (err) throw err;
        collection.find({
            surname: { $exists: false}
        }).toArray(yourCallback);
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-07
      • 2010-11-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多