gpt4 book ai didi

node.js - Mongoose 数组到数组搜索功能

转载 作者:太空宇宙 更新时间:2023-11-04 02:58:08 25 4
gpt4 key购买 nike

我正在制作一个数组到数组搜索功能。我有一个如下所示的架构:

var PostSchema = new Schema({
title: String,
pieces: Array,
category: Schema.ObjectId
});

pieces 字段是 title 字段的数组,但已使用 title.split(' '); 将其拆分为多个部分。

因此,如果标题如下所示:Lorem ipsum doler sat amet,则各部分如下所示:[ 'Lorem', 'ipsum', 'doler', 'sit', 'amet' ]

现在我有了这个搜索功能,我也可以在其中分割搜索输入,并希望根据 pieces 字段进行检查,以便找到最佳结果。如果我搜索 Lorem doler amet 它会变成 [ 'Lorem', 'doler', 'amet' ]

我尝试执行此操作的方式是通过以下代码:

var searchString = req.body.searchString;
Post
.find({})
.where('pieces').in(searchString.split(' ')) // The pieces must have ALL of the items from splitted searchString.
.limit(30)
.select('-_id -_v -pieces')
.exec(function (err, posts) {
// Do stuff
});

但似乎根本不起作用。关于如何使用 Mongoose 实现这样的搜索功能有任何线索吗?

为了简化我想做的事情:

检查是否
[ 'Lorem', 'ipsum', 'doler', '坐', 'amet' ]
包含全部
[ 'Lorem', 'doler', 'amet']

最佳答案

我相信您正在寻找的是 $all运算符(operator)。您的 Mongoose 代码应如下所示:

var searchString = req.body.searchString;
Post
.find({})
.where('pieces').all(searchString.split(' '))
.limit(30)
.select('-_id -_v -pieces')
.exec(function (err, posts) {
// Do stuff
});

希望对您有所帮助。

关于node.js - Mongoose 数组到数组搜索功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27678941/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com