如果mongodb中存在字段,则获取记录

时间:2016-10-10 19:49:48

标签: mongodb

我有这个查询

db.invites.find({$and: [{primaryowner: mynumber}, {invited: mynumber}]})

我用它来获取记录,如果他们满足上述条件。但是,我想获取{eventtype:4}和字段primaryowner:$exists: true

的记录

这就是我所拥有的

{ eventtype: 4 },{ primaryowner: { $exists: true }}

但我知道这不是因为我需要获取eventtype = 4和字段primaryowner存在的记录。

我如何表示查询?。

1 个答案:

答案 0 :(得分:0)

从您的问题来看,我无法清楚地了解所需的业务场景是什么,但提供的是样本数据 我已经给出了伪代码和该伪代码的相应mongodb实现。

if invited field is "0800123456" 
   if event type is 3 and event status is 11
     select matching documents
or if event type is 4 and event status is 11 and primary owner exists
     select matching documents

Mongo数据库查询

db.collection.find({
  $or: [
    {
      $and: [
        {
          "invited": "0800123456"
        },
        {
          "eventtype": {
            $eq: "3"
          }
        },
        {
          "eventstatus": {
            $eq: 11
          }
        }
      ]
    },
    {
      $and: [
        {
          "eventtype": {
            $eq: "4"
          }
        },
        {
          "eventstatus": {
            $eq: 11
          }
        },
        {
          primaryowner: {
            $exists: true
          }
        }
      ]
    }
  ]
})

如果这与您的方案不匹配,请在此示例代码的帮助下编写您自己的查询。

希望它有帮助!