MongoDB Aggregate在文档中添加一个新字段(如果已存在另一个字段)

sdsssdd

我的收藏样本:

[
  {
    _id: "5e13asdfasuh",
    animal: "dog",
    gender: "male",
    age: 5,
    name: "mark",
    breed: "gold"
  },
  {
    _id: "5e13asdfasuhss",
    animal: "dog",
    name: "snow",
    age: "2",
    breed: "husky"
  }
]

哪个文档具有“性别”列需要添加具有值的字段gender_count:1

输出:

[
  {
    "_id": "5e13asdfasuh",
    "age": 5,
    "animal": "dog",
    "breed": "gold",
    "gender": "male",
    "gender_count": 1,
    "name": "mark"
  },
  {
    "_id": "5e13asdfasuhss",
    "age": "2",
    "animal": "dog",
    "breed": "husky",
    "name": "snow"
  }
]
谁-假面真灵魂

您可以尝试以下查询:

db.collection.aggregate([
    {
        $addFields: {
            gender_count: {
                /** Check field 'gender' exists,
                 *  So if gender field doesn't exists then condition becomes false (As we're returning false),
                 *  ultimately as we're using '$$REMOVE' then gender_count will not be added to that doc */
                $cond: [
                    {
                        "$ifNull": [
                            "$gender",
                            false
                        ]
                    },
                    1,
                    "$$REMOVE"
                ]
            }
        }
    }
])

测试: MongoDB-操场

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在每个文档中添加一个新字段,并在mongodb中为同一文档的另一个字段赋值

MongoDB使用另一个字段的值添加新字段

MongoDB 使用另一个集合中的另一个字段更新字段

MongoDB:如何为集合中的每个文档设置一个新字段,该字段等于另一个字段的值

mongodb聚合:如果两个字段的值匹配,则将相应字典的另一个字段的值添加到新字段

mongodb在从另一个字段派生的所有文档中添加字段

如果一个字段不存在,Mongodb将添加多个文档

Mongodb 更新文档中的一个字段,然后根据前一个字段的值更新另一个

如何将一个数组字段的长度添加到Mongodb文档中的另一个字段中

如果MongoDB和Mongoose存在另一个匹配的文档,请添加字段

根据另一个字段的值在MongoDB中投影一个字段

Mongodb 比较使用一个字段与对象数组中的另一个字段

查找来自一个字段的值不为null且不在另一个字段中的MongoDB文档

根据MongoDB文档中的另一个字段更新一个字段(在Node.js中使用Mongoose)

mongodb聚合添加从另一个字段派生的字段

mongoDB $ set问题,使用文档的键值/另一个字段值

仅在mongodb中的字段小于另一个字段时更新

如何使用 nodejs 通过 objectId 和 mongodb 中的另一个字段查找文档?

MongoDB将ObjectId从一个字段移动到另一个字段

Mongodb在一个字段上查询取决于另一个字段

MongoDB - 更新一个或另一个字段

在 MongoDB 中,有一个对象列表,通过查询同一对象的另一个字段的值,根据对象的一个字段的值对所有文档进行排序

如何使用php在MongoDB文档中添加一个字段?

如何根据另一个字段更新mongodb中的数组字典元素

计算在MongoDB中另一个字段上分组的文档中某个字段中的字符串实例数吗?

根据MongoDB中的另一个字段有选择地返回一个字段

如何查询MongoDB的一个字段值是否以字符串的形式出现在另一个字段值中?

按字段过滤,然后选择另一个字段mongodb

Spring Boot - Mongodb - 基于另一个字段的自动递增字段