Mongoose find() 不适用于 $not 查询 [重复]

Posted

技术标签:

【中文标题】Mongoose find() 不适用于 $not 查询 [重复]【英文标题】:Mongoose find() not working with $not query [duplicate] 【发布时间】:2017-11-15 01:29:54 【问题描述】:

这是我的查找请求:

Recipe.find('author.id': $not: user

这是文档:https://docs.mongodb.com/manual/reference/operator/query/not/index.html

这是错误:

Error: Can't use $not with ObjectId.

我想查找不是由当前用户创作的所有食谱。论点工作正常,所以这不是问题。一定有办法做到这一点,还是我做错了什么?

【问题讨论】:

我认为你想要 $ne '不等于' 而不是 $not 这是一个逻辑运算符。见:docs.mongodb.com/manual/reference/operator/query/ne 我认为您实际上是指.find( "author.id": "$ne": user )。所以它是$ne,意思是“不相等”而不是$not,这是别的东西。它只是 user 而不是 user 这实际上意味着 "user": user 并且已经与使用“点符号”结合起来确实没有意义。 【参考方案1】:

你应该使用 $ne

Recipe.find( "author.id":  "$ne": user );

【讨论】:

以上是关于Mongoose find() 不适用于 $not 查询 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

Mongoose:findOneAndUpdate 不适用于多种条件

save() 不适用于 mongoose.Schema

唯一索引不适用于 Mongoose / MongoDB

Mongoose 模式验证不适用于 Fawn

Mongoose Populate 不适用于 ObjectIds 数组

Mongoose不适用于Firebase(Express Api)主机