使用MongoDB $exists 检查特定字段是否存在。如果文档中不存在该字段,则需要使用find()显示相同的文档。
让我们创建一个包含文档的集合-
> db.demo612.insertOne({id:1,"Info":[{Name:"Chris",Age:21},{Name:"David"}]});{ "acknowledged" : true, "insertedId" : ObjectId("5e987372f6b89257f5584d87") }
在find()方法的帮助下显示集合中的所有文档-
> db.demo612.find().pretty();
这将产生以下输出-
{ "_id" : ObjectId("5e987372f6b89257f5584d87"), "id" : 1, "Info" : [ { "Name" : "Chris", "Age" : 21 }, { "Name" : "David" } ] }
以下是获取不包含特定字段的MongoDB文档的查询-
> db.demo612.aggregate({$unwind: "$Info"}, ... {$match: {"Info.Age":{$exists: false}}}, ... {$project: {"Info.Name": 1}})
这将产生以下输出-
{ "_id" : ObjectId("5e987372f6b89257f5584d87"), "Info" : { "Name" : "David" } }
问题内容: 我已经创建了一些文档并设法进行了一些简单的查询,但是我无法创建一个查询来查找仅存在字段的文档。 例如,假设这是一个文档: 现在,我需要一个查询,该查询将把所有文档包含文本的地方都带进去。 如果没有文本,则将如下所示: 因此,我想检查中该字段的存在。 我该如何实现? 问题答案: 您可以将运算符与符号结合使用。mongo-shell中的裸查询应如下所示: Java中的测试用例可能如下所示:
问题内容: 可能是一个非常愚蠢的问题,检查elasticsearch中文档的字段是否存在的最佳方法是什么?我在文档中找不到任何内容。 例如,如果该文档没有字段/关键字“ price”,那么我不想返回结果。 {“ updated”:“ 2015/09/17 11:27:27”,“ name”:“ Eye Shadow”,“ format”:“ 1.5 g / 0.05 oz”,} 我可以做什么? 谢
我遇到了一个很烦人的问题,我似乎找不到任何解决我具体情况的办法。在mongo agggregation管道中,我希望添加一个字段,并根据另一个字段子字段的存在情况,为该另一个字段的子字段赋值,如果该另一个字段的子字段不存在,则为1赋值。 以下是我所尝试的: 但是,它只适用于字段存在的情况。在另一种情况下,该新字段根本不添加到管道中。你知道我做错了什么吗?
我有两个 char 数组:一个用某个单词填充。例如 第二个是给定的大小,并填充从“a”到“z”的随机字符。 我需要计算一个单词在第二个数组中出现了多少次。例如,假设第二个数组是:< code>{'w ',' j ',' a ',' v ',' a'},给定的示例函数应该返回1,因为单词“java”在数组中只出现一次。 这是我的密码 当我将arr设置为与word相同时,它返回预期值,但当我将arr设
如何查询从mongodb MapReduce生成的集合中的特定字段? 要只检索输出集合中的lastname字段,应输入什么字段? 结果应为: {“lastname”:“Doe”} >版本() 版本:2.2.2 >db.test.save({first:“john”,last:“doe”}) >db.test.find() {“_id”:ObjectId(“50bc001A8E97247957C60
问题内容: 比方说,我有一个关联数组,像这样:。 如何检查字典中是否存在? 问题答案: if key in array: # do something 关联数组在Python中称为字典,您可以在stdtypes文档中了解有关它们的更多信息。