首页 文章

Mongodb在aray中更新现有项目的新位置,如果不存在则添加新位置

提问于
浏览 1938
2

我试图使用NodeJs和MongoDb为我的应用程序实现SearchHistory .

我的数组返回:SearchHistory = [“food”,“service”,“car”]

如果我插入相同的字符串,我想将此数组中项目的位置交换到第一个位置 . 如果数组中不存在新位置,则会向第一个位置添加新内容 .

例如:如果我在我的应用程序中搜索“car”,则数组将作为SearchHistory = [“car”,“food”,“service”]返回

如果我在我的应用程序中插入书籍,将会是:SearchHistory = [“book”,“car”,“food”,“service”] .

谢谢

1 回答

  • 1

    试试这个:

    SearchHistory = ["car", "food", "service"]
    
    newSearch = "book"
    
    searchExistsIndex = SearchHistory.indexOf(newSearch)
    
    if (searchExists != -1) {
        SearchHistory.splice(searchExists, 1)
        SearchHistory.splice(0, 0, newSearch)
    
    } else {
        SearchHistory.splice(0, 0, newSearch)
    }
    

    newSearch变量是您所说的新搜索 . searchExistsIndex查看newSearch字符串是否已在列表中 . 如果不是,它将返回-1,它只会将newSearch字符串添加到数组的前面 . 如果它返回-1以外的任何内容,它将首先从列表中删除它,然后它将newSearch添加到列表的前面 .

    我认为这是最简单的方法 . 我希望这就是你要找的东西 .

相关问题