如何使用MongoDB查询检查对象中是否存在属性?
我正在为我的MongoDB集合构建一个简单的查询。模型如下所示:如何使用MongoDB查询检查对象中是否存在属性?,mongodb,Mongodb,我正在为我的MongoDB集合构建一个简单的查询。模型如下所示: { a: [], user: { email: String, name: String, surname: String } } 我需要从查询中获得的是将“a”作为非空数组并设置为“user.email”的所有文档。我的问题是: Document.find({ a: { $exists: true,
{
a: [],
user: {
email: String,
name: String,
surname: String
}
}
我需要从查询中获得的是将“a”作为非空数组并设置为“user.email”的所有文档。我的问题是:
Document.find({
a: {
$exists: true,
$not: {
$size: 0
}
},
user: {
$exists: true,
'email': {
$exists: true
}
}
})
问题是,当我执行查询时,我的服务器返回一个500错误,表示:
{
"error": {
"name": "MongoError",
"message": "unknown operator: email",
"waitedMS": 0,
"ok": 0,
"errmsg": "unknown operator: email",
"code": 2
}
}
我哪里做错了?有人能帮我吗?
谢谢大家! 由于您构建查询的方式,MongoDB引擎尝试在
用户
字段上作为操作员解析电子邮件
关键字
如果要检查文档上是否定义了嵌套属性,可以使用点表示法:
Document.find({
a: {
$exists: true,
$not: {
$size: 0
}
},
"user.email": {
$exists: true
}
})