Как создать запрос MongoDB - PullRequest
0 голосов
/ 23 октября 2018

У меня есть коллекция с некоторыми документами, как показано ниже:

{
    "_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"
}

При наличии определенного идентификатора, как я могу получить предыдущий документ, статус которого не равен определенному статусу.

ДляНапример, я даю идентификатор 4 и хочу получить последний документ, статус которого не B и C. Итак, я получаю объект с идентификатором 1.

Как создать этот запрос?

1 Ответ

0 голосов
/ 23 октября 2018

вы можете попробовать это:

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

, поэтому используйте , а не оператор , т.е. $ nin , затем сортируйте данные в порядке убывания иограничьте записи 1

подробностями см. ниже документацию.

$ nin оператор

mongo sort

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...