nodejs - 如何在mongo中搜索最后一些文档

时间:2018-05-01 06:58:02

标签: node.js mongodb

的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 = []

1 个答案:

答案 0 :(得分:0)

您是单独使用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

    }
);