javascript - 测试 MongoDB 中未设置或缺失的字段

标签 javascript mongodb doctrine-odm

在查询 MongoDB 数据库时是否有一种方法可以测试以下任一字段:

  • 尚未设置
  • 设置为空
  • ...作为奖励,数组是否包含 null 作为其值之一?

最佳答案

这应该涵盖您的所有三种情况:

db.FOO.find({BAR: null});

引用资料:


您可以从 Mongo shell 验证:

> db.foo.drop();
true
> db.foo.insert({_id:1, bar:1,          matches:'NO'});
> db.foo.insert({_id:2,                 matches:'YES'});
> db.foo.insert({_id:3, bar:null,       matches:'YES'});
> db.foo.insert({_id:4, bar:[1,2,3],    matches:'NO'});
> db.foo.insert({_id:5, bar:[1,2,null], matches:'YES'});
>
> db.foo.find({bar: null});
{ "_id" : 2, "matches" : "YES" }
{ "_id" : 3, "bar" : null, "matches" : "YES" }
{ "_id" : 5, "bar" : [ 1, 2, null ], "matches" : "YES" }
> db.foo.count({bar: null});
3
> db.foo.count({matches: 'YES'});
3

关于javascript - 测试 MongoDB 中未设置或缺失的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12190775/

相关文章:

javascript - NavigationBar 的 routeMapper 不是函数

mongodb - 如何在 Mongoose 文档中允许自由格式的 JSON 数据?

Mongodb:查找缺少某些键的嵌入元素

php - 基于对缓存对象的引用查询文档

mongodb - 为什么在实际查询只需要几毫秒时获取 MongoDB 结果却很慢?

javascript - 如何从客户端调用服务器端按钮单击功能?

javascript - 可以在sessionStorage中使用jquery吗?

javascript - HtmlUnit click() div 不会触发 JavaScript

php - 来自 PHP 的 MongoDB 副本集状态

php - MongoDB/Doctrine : can't nest $or in $and