查询mongoose以查找匹配" req.body.search"的所有JSON对象。

时间:2017-03-01 12:26:21

标签: node.js mongodb express mongoose mongodb-query

我有一个搜索框,我想使用mongoose返回与搜索匹配的任何JSON对象。

现在我只能搜索对象的名称,然后返回与搜索到的名称匹配的JSON对象。:

(s/def ::propertyDef (s/and (s/keys :req [::type (or ::default ::value)]
                                    :opt [::description ::required])
                            #(xor (::default %) (::value %))))

(s/valid? ::propertyDef {::type "type" ::default "default"})
=> true
(s/valid? ::propertyDef {::type "type" ::value "value"})
=> true
(s/valid? ::propertyDef {::type "type" ::default "default" ::value "value"})
=> false

如何使用mongoose撰写将返回与搜索匹配的任何JSON对象的查询?

1 个答案:

答案 0 :(得分:0)

您可以使用Mongo的FTS功能搜索多个字段:

首先,您必须为要包含在搜索中的字段创建一些text indexes

然后使用text operator,您将使用搜索字词进行查询,Mongo将在您上面指定的文本索引中搜索该字词。

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true">

    <android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/AppTheme.AppBarOverlay">

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            app:popupTheme="@style/AppTheme.PopupOverlay"/>

    </android.support.design.widget.AppBarLayout>

</android.support.design.widget.CoordinatorLayout>