我正在尝试MongoDB的文本搜索功能,在互联网上我可以看到人们这样做的很多信息:
db.posts.runCommand("text", {search: '"robots are crazy"'})
得到这个:
{
"queryDebugString" : "robot||||robots are||",
"language" : "english",
"results" : [
{
"score" : 0.6666666666666666,
"obj" : {
"_id" : ObjectId("50ebc482214a1e88aaa4ad9e"),
"txt" : "Robots are superior to humans"
}
}
],
"stats" : {
"nscanned" : 2,
"nscannedObjects" : 0,
"n" : 1,
"timeMicros" : 185
},
"ok" : 1
}
我知道runCommand("text", ...
已被弃用,但我也尝试了db.posts.find({ $text: { $search: '"robots are crazy"' } })
方法,而且没有。
如何查看此“queryDebugString”属性?我在寻找启动mongod时使用的某种调试标志,但找不到任何东西。
答案 0 :(得分:1)
对于更新版本的Mongo(至少2.6),请使用.explain(true)
作为详细输出,其中包含parsedTextQuery
字段,其中包含的信息比queryDebugString
更多,更易读:
> db.test.find({ "$text" : { "$search" : "cows are lovely" } }).explain(true)
{
"cursor" : "TextCursor",
...
"stats" : {
"type" : "TEXT",
...
"parsedTextQuery" : {
"terms" : ["cow", "love"],
"negatedTerms" : [],
"phrases" : [],
"negatedPhrases" : []
]
}
...
}
答案 1 :(得分:-1)
试试这个:
db.posts.find({ "text" : '"robots are crazy"' })
现在在Mongo中,操作变为(基本状态),如:
db.collection.action({query}}
我认为它已经足够开始了,但是尝试转到MongoDB文档: