我有一个收藏,里面有一些如下文件:
{
"_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的对象。
如何创建此查询?
答案 0 :(得分:1)
您可以尝试以下方法:
db.yourcollection.find({“ status”:{“ $ nin”:[“ B”,“ C”]}}} ).sort({_ id:-1})。limit(1);
因此请使用不在运算符中,即 $ nin ,然后按降序对数据进行排序并将记录限制为1
有关详细信息,请参见以下文档。