我正在參加在線課程,並且遇到查詢問題。在外殼工作正常,但運行js文件時,我得到一個錯誤:未知的操作符:$或。這是revelant代碼:
var allOptions = [
{
overview: "wiki",
},
{
milestones: "CMO"
}
];
,然後在查詢功能:
var query = {};
if ("overview" in options) {
query.overview = { "$or": [{"overview": {"$regex": options.overview, "$options": "i"}},
{"tag_list": {"$regex": options.overview, "$options": "i"}}] }
而且在外殼,如果我這樣的查詢:
db.companies.find({ $or: [{"overview": {"$regex": "wiki"}}, {"tag_list": {"$regex": "wiki"}}] }).count();
我得到一個結果。我究竟做錯了什麼?任何幫助,將不勝感激
需要被'選項[0] .overview',因爲它是在陣列中。或者['.find()'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find?v=example)匹配數組中的元素Point你是不是在引用結構中的正確元素? –
@Neil Lunn,改變你的建議'query.overview = {「$ or」:[{「overview」:{「$ regex」:options [0] .overview,「$ options」:「i」}}, {「tag_list」:{「$ regex」:options [0] .overview,「$ options」:「i」}}]} .overview',我得到這樣的信息:TypeError:Can not read property'overview'未定義' – Mellville
通過示例添加了答案。 –