gpt4 book ai didi

mongodb 找一个很严格的文件

转载 作者:可可西里 更新时间:2023-11-01 09:58:59 24 4
gpt4 key购买 nike

我想返回一个非常严格的文档,它只包含一个特定的字段,不多也不少。

情况是这样的:db.test.find()

返回的文档
{"_id":ObjectId("562693f46fdf6dd2a0c97ad6"),"shape":"circle","color":"red","age": "20"}
{"_id":ObjectId("562694046fdf6dd2a0c97ad7"),"shape":"circle","color":"blue","age": "42"}
{"_id":ObjectId("562694306fdf6dd2a0c97ad8"),"shape":"circle","color":"green"}
{"_id":ObjectId("562694306fdf6dd2a0c97ad8"),"shape":"blabla","color":"blabla"}

我怎样才能返回只有字段的文档:形状和颜色,并忽略所有其他有更多其他字段的文档。所以结果应该是这样的:

{"_id":ObjectId("562694306fdf6dd2a0c97ad8"),"shape":"circle","color":"green"}
{"_id":ObjectId("562694306fdf6dd2a0c97ad8"),"shape":"blabla","color":"blabla"}

编辑:所有其他字段都是未知的,所以使用 age:{$exists:false}} 是不可能的

最佳答案

一种方法是检查这两个字段是否存在并限制为恰好具有 3 个字段(形状、颜色、_id)的结果:

db.test.find({
shape: { $exists: true },
color: { $exists: true },
$where: function() { return Object.keys(this).length === 3 }
})

除了使用 $where 之外,还有其他方法,此答案指出:Mongodb Query based on number of fields in a record

关于mongodb 找一个很严格的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33245532/

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