我有跟随架构和子架构,我想我已经从mongoose文件中执行了所有步骤,但我总是得到空数组。
// other libraries
var mongoose = require('mongoose');
var schema = mongoose.Schema;
// product schema
var productSchema = new schema({
title: {type: String},
ingredients: {type: String},
description: {type: String},
banner: [{path: String, fileName: String}],
price: {type: String},
promo: {promotion: {type: Boolean, default: 0}, promoDetail: {type: String, default: null}},
stock: {type: Number, default: 0},
tags: [],
sold: {type: Number, default: 0},
pickOfTheDay: {type: Boolean, default: 0},
shipping: {type: String, default: null},
featured: {type: Boolean, default: 0},
showCounter: {type: Number, default: 0},
createdAt: {type: Date, default: Date.now},
updatedAt: {type: Date, default: Date.now},
seller: {}
});
// merchant schema
var Schema = new schema({
accountName: {type: String},
firstName: {type: String},
middleName: {type: String},
lastName: {type: String},
address: { street: {type: String},
city: {type: String},
province: {type: String},
country: {type: String},
postalCode: {type: String}
},
phone: { phone1: {type: Number},
phone2: {type: Number}
},
email: {type: String},
userType: {type: String, default: "customer"},
password: {type: String},
socialAccounts: { facebook: {id: String, token: String, email: String, name: String},
twitter: {id: String, token: String, displayName: String, username: String},
google: {id: String, token: String, email: String, name: String}
},
products: [productSchema]
});
// creating indexes
Schema.index({
'products.title': "text",
'products.ingredients': "text",
'products.description': "text"
});
var model = mongoose.model('merchant', Schema);
exports.modelExports = function(){
return model;
}
这里我的收藏品上有以下文件
{
"_id" : ObjectId("56b06b7fe61af1081ceea185"),
"accountName" : "Agnes",
"firstName" : "Agnes",
"middleName" : "Monica",
"lastName" : "AgnesMo",
"email" : "agnes@yahoo.com",
"password" : "$2a$10$wpHVqyw4sFG1.MwtQj6XPOdx5AJ/kyi92I1Z50GrWMlhI97E3ZrpW",
"products" : [
{
"title" : "Sate Maranggi",
"ingredients" : "Daging sapi, kecap, cabai, bawang merah, bawang putih",
"description" : "Sate maranggi enak dan lezat",
"price" : "15000",
"_id" : ObjectId("56b06eae492acbbc1fd070e9"),
"pickOfTheDay" : false,
"sold" : NumberInt(0),
"featured" : true,
"tags" : [
"Sate Maranggi"
],
"stock" : NumberInt(20),
"promo" : {
"promoDetail" : "Beli 2 gratis 1",
"promotion" : true
},
"banner" : [
{
"path" : "D:\\project\\storage\\uploads\\images\\Resep-Cara-Membuat-Sate-Maranggi-Khas-Purwakarta.jpg-1454403246620.jpg",
"fileName" : "Resep-Cara-Membuat-Sate-Maranggi-Khas-Purwakarta.jpg-1454403246620.jpg",
"_id" : ObjectId("56b06eae492acbbc1fd070ea")
}
]
}
],
"userType" : "merchant",
"phone" : {
"phone1" : NumberInt(88888),
"phone2" : NumberInt(999999)
},
"address" : {
"street" : "jl. A.Yani no 23",
"city" : "Jakarta",
"province" : "DKI Jakarta",
"country" : "indonesia",
"postalCode" : "61382"
},
"__v" : NumberInt(1)
}
这是我在另一个文件中的搜索查询
// call the merchant model
var merchantM = require(__base + 'app/models/merchant_m');
var model = merchantM.modelExports();
// text search
model.find({ $text: { $search: "Sate" } }).exec(function(err, docs){
if (err){
res.send(err);
}else{
res.send(docs);
}
然后返回一个空数组。 我会错过什么吗?
答案 0 :(得分:1)
请确保您要查询的集合名称在MongoDB中为merchant
,与您在下面声明的型号名称相匹配。
var model = mongoose.model('merchant', Schema);