【问题标题】:How create a MongoDB query如何创建 MongoDB 查询
【发布时间】:2019-03-27 20:11:26
【问题描述】:

我有一个包含一些文档的集合,如下所示:

{
    "_id" : ObjectId("1"),
    "className" : "model.MyClass",
    "createdOn" : ISODate("2018-10-23T11:00:00.000+01:00"),
    "status" : "A"
}

{
    "_id" : ObjectId("2"),
    "className" : "model.MyClass",
    "createdOn" : ISODate("2018-10-23T11:01:00.000+01:00"),
    "status" : "B"
}

{
    "_id" : ObjectId("3"),
    "className" : "model.MyClass",
    "createdOn" : ISODate("2018-10-23T11:02:00.000+01:00"),
    "status" : "C"
}

{
    "_id" : ObjectId("4"),
    "className" : "model.MyClass",
    "createdOn" : ISODate("2018-10-23T11:03:00.000+01:00"),
    "status" : "D"
}

给定一个特定的ID,如何获取上一个状态不等于特定状态的文档。

例如,我给出 ID 4 并希望获取状态不是 B 也不是 C 的最后一个文档。所以,我得到 ID 为 1 的对象。

如何创建这个查询?

【问题讨论】:

    标签: mongodb mongodb-query


    【解决方案1】:

    你可以试试这个:

    db.yourcollection.find( {"status":{"$nin":["B","C"]}} ).sort({_id:-1}).limit(1);

    所以使用not in运算符即$nin,然后按降序对数据进行排序并将记录限制为1

    有关详细信息,请参阅以下文档。

    $nin operator

    mongo sort

    【讨论】:

      猜你喜欢
      • 2021-09-14
      • 1970-01-01
      • 2015-04-09
      • 1970-01-01
      • 2015-01-24
      • 2011-10-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多