如何创建MongoDB查询

时间:2018-10-23 14:30:13

标签: mongodb mongodb-query

我有一个收藏,里面有一些如下文件:

{
    "_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的对象。

如何创建此查询?

1 个答案:

答案 0 :(得分:1)

您可以尝试以下方法:

  

db.yourcollection.find({“ status”:{“ $ nin”:[“ B”,“ C”]}}}   ).sort({_ id:-1})。limit(1);

因此请使用不在运算符中,即 $ nin ,然后按降序对数据进行排序并将记录限制为1

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

$nin operator

mongo sort