2015-09-13 104 views
4

我创建一个带有全名字段的用户集合(即Jose Osorio,Jose castro,John smith,Maria Smith),我需要创建一个搜索栏来查找注册用户的名称或姓氏。流星js:在用户集合中创建索引

I.e.在搜索栏中输入jose,我想看看Jose Osorio和Jose castro。

我读了关于在数据库中创建索引,但它没有工作,或者我做错了,我能做些什么来解决这个问题?

+2

请你发布你已经尝试过的,以及它是如何出错的? –

回答

3

可以使用例如来自mongo shell的db.books.createIndex({ "category": 1 })来完成。

+2

谢谢你为我工作,如果你使用metor它是流星mongo db.yourcollection.createIndex({“field”:1},{unique:true}) – Spade

7

添加索引:

Meteor.startup(function() { 
    Meteor.users._ensureIndex({ "fullname": 1}); 
}); 

并作出选择器,看看: https://atmospherejs.com/fourq/typeahead

+0

似乎是一个有用的未公开的函数。 –

+0

_ensureIndex已弃用。 – Jankapunkt

6

您也可以使用rawCollection这样的:

Products.rawCollection().createIndex({ 
    "type": "text", 
    "searchString": "text", 
    "title": "text", 
    "brand": "text", 
    "description": "text" 
}, { 
    "weights": { 
     type: 5, 
     brand: 4, 
     title: 3, 
     searchString: 3, 
     description: 1 
    } 
}); 
+1

该解决方案使用Mongo最新的方法(createIndex)并在Meteor代码中工作 - 它应该被接受! –