我遇到了一个很烦人的问题,我似乎找不到任何解决我具体情况的办法。在mongo agggregation管道中,我希望添加一个字段,并根据另一个字段子字段的存在情况,为该另一个字段的子字段赋值,如果该另一个字段的子字段不存在,则为1赋值。
以下是我所尝试的:
pipelineStages.push(
{$addFields:
{field:
{$cond: [
{$ne: ["$otherField.subField", null]},
"$otherField.subField", 1]
}
}
}
);
但是,它只适用于字段存在的情况。在另一种情况下,该新字段根本不添加到管道中。你知道我做错了什么吗?
将$IFNULL
包装在$cond
中就可以解决这个问题,即使有子字段问题。
pipelineStages.push({
$addFields: {
newField: {
$cond: [
{
"$ifNull": [
"$otherField.subField",
false
]
},
"$otherField.subField",
1
]
}
}
);
问题内容: 我已经创建了一些文档并设法进行了一些简单的查询,但是我无法创建一个查询来查找仅存在字段的文档。 例如,假设这是一个文档: 现在,我需要一个查询,该查询将把所有文档包含文本的地方都带进去。 如果没有文本,则将如下所示: 因此,我想检查中该字段的存在。 我该如何实现? 问题答案: 您可以将运算符与符号结合使用。mongo-shell中的裸查询应如下所示: Java中的测试用例可能如下所示:
本文向大家介绍MongoDB文档中如何检查特定字段是否存在,包括了MongoDB文档中如何检查特定字段是否存在的使用技巧和注意事项,需要的朋友参考一下 使用MongoDB $exists 检查特定字段是否存在。如果文档中不存在该字段,则需要使用find()显示相同的文档。 让我们创建一个包含文档的集合- 在find()方法的帮助下显示集合中的所有文档- 这将产生以下输出- 以下是获取不包含特定字段
我很难相信这个问题还没有在某个地方被问到并回答过,但我找不到任何它的痕迹。
问题内容: 我有以下问题: 我正在将Java驱动程序用于MongoDB 3。 在版本2中,可以执行DB.collectionExists(name)来检查所选数据库中是否存在一个集合。 在版本3中,从DB切换到MongoDatabase,此方法不再存在。 如何查找数据库中是否存在集合?我试图使用listCollectionNames()遍历集合,但这似乎效果很差。 谢谢你的帮助 问题答案: 你是对
本文向大家介绍检查字符串在Java中是否不为空(“”)并且不为null,包括了检查字符串在Java中是否不为空(“”)并且不为null的使用技巧和注意事项,需要的朋友参考一下 假设我们有以下字符串- 现在让我们检查字符串是否为null或不为空。 示例 输出结果
问题内容: 我需要帮助检查数据库中是否存在行。就我而言,该行包含一个电子邮件地址。我得到结果: 这是我当前正在使用的代码: 有没有更好的方法来检查MySQL中是否存在行(在我的情况下,检查MySQL中是否存在电子邮件)? 问题答案: 以下是经过尝试,测试和证明的检查行是否存在的方法。 (其中一些我自己使用,或者过去使用过)。 编辑: 我在使用两次的语法中犯了一个先前的错误。请查阅修订版本。 即: