Mongodb更新现有项目的新位置并添加新的位置(如果不存在)

时间:2018-12-10 08:05:31

标签: node.js mongodb mongodb-query

我正在尝试使用带有MongoDb的NodeJ为我的应用程序实现SearchHistory。

我的数组返回了: SearchHistory = [“食品”,“服务”,“汽车”]

如果我插入相同的String,我想将该项目在此数组中的位置交换到第一个位置。如果数组中不存在新元素,则将其添加到第一个位置。

例如:如果我在应用程序中搜索“ car”,则该数组将返回为 SearchHistory = [“汽车”,“食品”,“服务”]

并且如果我在应用程序中插入书籍,则将为:SearchHistory = [“书籍”,“汽车”,“食品”,“服务”]。

谢谢

1 个答案:

答案 0 :(得分: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添加到列表的前面。

我认为这是最简单的方法。我希望这就是您想要的。