Nodejs
dbo.collection("abc")
.find({"name": "Felicity"})
.sort({_id:-1})
.limit()
.exec(
function(err, results){
// my code
}
);
Данные в сборе
cansOne = [
{
"_id": ObjectId("5ace23558980..."),
"name": "Khalichi",
"gender": "F",
"type":"Admin"
},
.
.
.
{
"_id": ObjectId("5ace23558980..."),
"name": "Thore",
"gender": "M",
"type":""
},
{
"_id": ObjectId("5ace23558980..."),
"name": "John Snow",
"gender": "M",
"type":"Admin"
},
{
"_id": ObjectId("5ace23558980..."),
"name": "Felicity",
"gender": "F",
"type":"User"
}
]
cansTwo = [
{
"_id": ObjectId("5ace23558980..."),
"name": "Khalichi",
"gender": "F",
"type":"Admin"
},
.
.
.
{
"_id": ObjectId("5ace23558980..."),
"name": "Thore",
"gender": "M",
"type":""
},
{
"_id": ObjectId("5ace23558980..."),
"name": "John Snow",
"gender": "M",
"type":"Admin"
},
{
"_id": ObjectId("5ace23558980..."),
"name": "Felicity",
"gender": "F",
"type":"User"
}
{
"_id": ObjectId("5ace23558980..."),
"name": "Batman",
"gender": "M",a
"type":""
}
]
У меня есть такие данные в коллекции. есть два типа случаев:
1) "type":"" в конце коллекции означает, что это последний документ коллекции.
2) После документа "type":"" в коллекции есть несколько документов.
Я хочу найти один документ, но если он идет после последнего индекса документа "type":"", он вернет этот документ, в противном случае он вернет null. короче я хочу поискать эту запись в том количестве данных, которое идет после последнего "type":""
Кто-нибудь может помочь.
Заранее спасибо.
Например, я хочу найти "name": "Felicity".
Ожидаемый результат
caseOne = [
{
"_id": ObjectId("5ace23558980..."),
"name": "Felicity",
"gender": "F",
"type":"User"
}
]
caseTwo = []





Вы пытаетесь сделать это только с помощью запроса Mongo или с помощью кода вашего приложения? Один только запрос Mongo не может сделать это AFAIK, вы не можете найти документ, в зависимости от его относительного положения по отношению к другим документам. Вам нужно использовать код приложения вместе с запросом Mongo, например:
dbo.collection("abc").find({
$or: [{
name: "Felicity"
}, {
type: ""
}]
})
.sort({
_id: -1
})
.limit()
.exec(
function(err, results) {
// results here contains documents having name: Falicity or type: ""
// do your check here
}
);
не так, Felicity приходит время буксировки, но я хочу, чтобы это было после last type = "", поэтому я не могу использовать или условие.
если вы напишете только запрос mongo, это очень поможет. другие вещи я возьму на себя. спасибо за повтор, сэр.
Как я уже сказал, это не может быть выполнено одним только запросом Mongo. Используя приведенный выше код, вам нужно написать больше кода, обрабатывающего results, чтобы получить то, что вам нужно.
Привет, Випул; могу я спросить, о каком заказывать коллекции вы думаете? Потому что, если вы полагаетесь на то, находится ли конкретная запись после другой записи, это зависит от того, в каком порядке вы перечисляете документы.