检查字段是否存在于MongoDB中

时间:2013-11-08 20:32:57

标签: mongodb

所以我试图找到所有具有字段集且不为空的记录。

我尝试使用$exists,但是根据MongoDB documentation,,此查询将返回等于null的字段。

  

$exists匹配包含存储空值的字段的文档。

所以我现在假设我必须做这样的事情:

db.collection.find({ "fieldToCheck" : { $exists : true, $not : null } })

每当我尝试这样做时,我都会收到错误[invalid use of $not]任何人都知道如何查询错误?

4 个答案:

答案 0 :(得分:139)

使用$ne(表示“不等于”)

db.collection.find({ "fieldToCheck": { $exists: true, $ne: null } })

答案 1 :(得分:2)

我发现这对我有用

db.getCollection('collectionName').findOne({"fieldName" : {$ne: null}})

答案 2 :(得分:0)

db.<COLLECTION NAME>.find({ "<FIELD NAME>": { $exists: true, $ne: null } })

答案 3 :(得分:-1)

您可以使用.Count()

count, err = collection.Find(bson.M{field: value}).Count()

但请记住设置:

Session.SetSafe

db.SetSafe(&mgo.Safe{})

否则每次通话都会返回0。