Mongo Model.find条件不工作

Posted

技术标签:

【中文标题】Mongo Model.find条件不工作【英文标题】:Mongo Model.find with condition not working 【发布时间】:2017-07-10 22:13:01 【问题描述】:

MongoDb:find 方法中的条件不起作用,未获取任何记录

我在我的应用程序中使用猫鼬,

AppUser.find('applicationId' : '58abf9bdc3aa0f1b0b2e3c85', function (err, obj) 
   if(err) 
      console.log(err);
    else 
     console.log(obj);
   
);

但在查找中使用无条件,工作正常:AppUser.find(, function (err, obj)...

以下是我的架构示例:

还在 applicationId 字段中设置了引用

【问题讨论】:

你试过AppUser.find('applicationId': '58abf9bdc3aa0f1b0b2e3c85'),而不是AppUser.find('applicationId', '58abf9bdc3aa0f1b0b2e3c85' 我会尝试的,它被错误地放在我的问题中 ya AppUser 是我的收藏对象 我需要显示所有匹配 applicationid 的记录,然后我将如何使用 findone 我发布了一个适用于我的本地答案。这会给您带来预期的结果吗? 【参考方案1】:

你需要拨打toArray就可以了:

AppUser.find('applicationId' : '58abf9bdc3aa0f1b0b2e3c85').toArray(function(err, docs) 
     if(err) 
           console.log(err);
     
     else 
           console.log(docs)
     
)

【讨论】:

这个toArray的目的是什么? collection.find() 返回errorcursor。要将cursor 转换为文档数组,您可以调用toArray()【参考方案2】:

在哪里使用

AppUser.find().where(applicationId:'58abf9bdc3aa0f1b0b2e3c85').exec(function(err, obj)
    if(err) 
      console.log(err);
    else 
     console.log(obj);
    
);

【讨论】:

以上是关于Mongo Model.find条件不工作的主要内容,如果未能解决你的问题,请参考以下文章

php Yii2 model :: find()具有默认的WHERE条件

如何在Laravel中的find()方法中指定两个或更多条件?

条件 Mongo 过滤器

mongo一个字段有两个条件进行查询

Mongo $sum $cond 有两个条件

在 mongo 中创建条件 TTL