MongoDBクエリでfieldValue.contains( "someString")検索を実装する必要がありますか?
私が見つけた解決策は
db.main.find( { $where: "this.content.indexOf('someString') != -1" } );
そしてそれは検索機能のためにうまく働きます。
しかし、集計関数で同じことをすると
db.foo.aggregate(
{
$match:
{ $where: "this.content.indexOf('someString') != -1" }
},
{
$project :
{
_id : 1,
words : 1
}
},
{
$unwind : "$words"
},
{
$group : {
_id : { tags : "$words" },
count : { $sum : 1 }
}
},
{
$sort: {count:-1}
},
{
$limit : 5
}
);
私はこの結果を得ました:
{
"errmsg" : "exception: $where is not allowed inside of a $match aggregation expression",
"code" : 16395,
"ok" : 0
}
質問:検索および集計関数で機能するfieldValue.contains( "someString")クエリをMongoDBで作成する方法。