gpt4 book ai didi

MongoDB:无法规范化查询:BadValue Projection 不能混合包含和排除

转载 作者:IT老高 更新时间:2023-10-28 11:05:31 24 4
gpt4 key购买 nike

我是使用 CakePHP 的 MongoDB 新手。

当我编写以下查询时,它会执行得很好。

db.testData.find()
{
"_id" : ObjectId("53d1f79db8173a625961ff3d"),
"name" : "sadikhasan",
"created" : ISODate("2014-07-25T06:22:21.701Z")
}

当我运行以下查询以仅获取 name 时,它返回错误:

db.testData.find({},{name:1, created:0})
error: {
"$err" : "Can't canonicalize query: BadValue Projection cannot
have a mix of inclusion and exclusion.",
"code" : 17287
}

当我运行以下查询以仅获取带有 _id:0name 时,它执行得很好:

db.testData.find({},{name:1, _id:0})
{ "name" : "sadikhasan" }

我的问题是,为什么我在投影列表中写入 created:0 时会出错。提前感谢您的帮助。

最佳答案

您不能混合包含和排除,唯一异常(exception)是 _id 字段。

例如,如果你有这个:

{
"_id": ObjectId("53d1fd30bdcf7d52c0d217de"),
"name": "bill",
"birthdate": ISODate("2014-07-80T00:00:00.000Z"),
"created": ISODate("2014-07-25T06:44:38.641Z")
}

如果您想要的只是“姓名”和“生日”,您需要这样做:

db.collection.find({},{ "_id": 0, "name": 1, "birthdate": 1 })

或者这个:

db.collection.find({},{ "_id": 0, "created": 0 })

但不允许“混合”除“_id”以外的任何其他操作

db.collection.find({},{ "_id": 0, "name": 1, "created": 0 })

这也会产生错误。

这一切都包含在 manual pages 中.

关于MongoDB:无法规范化查询:BadValue Projection 不能混合包含和排除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24949544/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com