我正在使用meteor 和JavaScript 构建一个webapp,并想根据属性过滤一个JSON 对象。我可以运行fullList.find()以获取所有内容并fullList.find({'Color': 'r'})仅获取“红色”项目,但我想返回所有“红色”或“蓝色”项目,并且无法找出正确的语法。我尝试了各种组合,例如fullList.find({'Color': 'r' || 'b'})and fullList.find({'Color': ('r' || 'b')}),但它要么根本不运行,要么返回只有一个属性的项目,而不是返回带有任一属性的项目。我觉得这应该很容易解决,我只是对 JavaScript 不太熟悉。
这是我的(相关)代码以确保完整性。只有两个条件为真(而不是一或三个)的逻辑失败:
indicadores: function(){
if (Session.get("displayUrgencies")){
if (Session.get("displayInsuff")){
if (Session.get("displayStrengths")){
console.log("display all");
return fullList.find();
}
else {
console.log("display urgencies and insufficiencies");
return fullList.find({'Color': 'v' || 'r'});
}
}
else {
if (Session.get("displayStrengths")){
console.log("display urgencies and strengths");
return fullList.find({'Color': 'b' || 'r'});
}
else {
console.log("display urgencies");
return fullList.find({'Color': 'r'});
}
}
}
else if (Session.get("displayInsuff")){
if (Session.get("displayStrengths")){
console.log("display insufficiencies and …Run Code Online (Sandbox Code Playgroud) 我想限制mongo中字段的选择:
units : { type: Number, default: 1 },
Run Code Online (Sandbox Code Playgroud)
但我想添加这个约束:类似的东西
授权值:[1,10,100,1000]
这是我的HTML:
<a href="#page1">page 1</a>
<a href="#page2">page 2</a>
Run Code Online (Sandbox Code Playgroud)
这是我的js:
define(['jquery', 'knockout'], function ($, ko) {
ko.components.register('page1', {
require: 'App/Controllers/page1'
});
ko.components.register('page2', {
require: 'App/Controllers/page2'
});
window.onhashchange = function () {
var hash = location.hash.replace('#', '');
$('#body').html('<' + hash + '></' + hash + '>'); //hash = page1 or page2
}
ko.applyBindings();
})
Run Code Online (Sandbox Code Playgroud)
但是,当散列更改时,组件不会加载,主体内容只是:
<page1></page1>或第二页.如果我像这样改变我的js:
define(['jquery', 'knockout'], function ($, ko) {
ko.components.register('page1', {
require: 'App/Controllers/page1'
});
ko.components.register('page2', {
require: 'App/Controllers/page2'
});
$('#body').html('<page1></page1>');
ko.applyBindings();
})
Run Code Online (Sandbox Code Playgroud)
它工作正常
我想从Python查询MongoDB上的不同字段,就像在高级搜索中一样.
只用一个字段保持示例简单,如果我{'Title': /my string/}在Mongo上手动查询,我会得到预期的结果.
在Python上我正在做以下事情:
query = {}
args = request.form
for arg in args:
key = "{0}".format(arg)
if args[arg] != "":
query[key] = "/" + args[arg].lower() + "/"
Run Code Online (Sandbox Code Playgroud)
但是,查询是这样的(注意引号):
{'Title': '/my string/'}
Run Code Online (Sandbox Code Playgroud)
所以我没有得到任何结果.如何实现正确的查询?
如标题所示,我正在使用Express我的webapp。
目前,我的代码如下所示:
API控制器
var mongoose = require('mongoose');
var Doc = mongoose.model('Document');
var sendJSONresponse = function(res, status, content) {
res.status(status);
res.json(content);
};
// "/api/documents"
module.exports.listAllDocuments = function(req, res) {
var stream = Doc.find().stream();
stream.on('data', function (chunk) {
res.write(JSON.stringify(chunk));
}).on('error', function (err) {
console.log('Error: ' + err);
}).on('end', function () {
res.end();
});
};
Run Code Online (Sandbox Code Playgroud)
var stream = Doc.find().stream();我希望利用而不是使用aggregate()。
像一样find(),aggregate()应该是可读流,对吗?
但是,当我简单地find()用一个aggregate()电话代替时,它似乎不起作用。
它说类型错误:Object #<Aggregate> has no method 'stream'。有什么方法可以流式传输聚合的JSON数据 …
我有名为用户的集合名称。在这个集合中,总共有6个文档。我想使用称为“名称”的列名称之一删除3个文档。我用这个查询:
db.users.deleteMany([
{
"name":"viki"
},
{
"name" : "vino"
},
{
"name" : "naranyamoorthy"
}
])
Run Code Online (Sandbox Code Playgroud)
但是我有一个错误,有人可以帮助我吗?
这些是我的文件。我想删除3个文档,名称分别为viki,vino,naranyamoorthy。
db.users.deleteMany([
{
"name":"viki"
},
{
"name" : "vino"
},
{
"name" : "naranyamoorthy"
}
])
Run Code Online (Sandbox Code Playgroud) 我是 mongodb 聚合的新手。我的 mongo 文档有很多数组。我需要将其导出为平面文件。为此,我需要构建它。我尝试了以下聚合:
[
{$unwind : "$items" },
{$unwind : "$items.discounts"},
{$unwind : "$payments"},
{$unwind : "$payments.items"},
{$unwind : "$payments.refunds"}
]
Run Code Online (Sandbox Code Playgroud)
它起作用了,然后我只是添加了以下条件来过滤数据
[
{$match : { "updatedtime": { $gt: 1514764800000}}},
{$unwind : "$items" },
{$unwind : "$items.discounts"},
{$unwind : "$payments"},
{$unwind : "$payments.items"},
{$unwind : "$payments.refunds"}
]
Run Code Online (Sandbox Code Playgroud)
返回 0 行,我再次尝试使用 match 语句
[
{$match : { "updatedtime": { $gt: 1514764800000}}}
]
Run Code Online (Sandbox Code Playgroud)
它再次起作用。
[
{$match : { "updatedtime": { $gt: 1514764800000}}},
{$unwind : "$items" }
]
Run Code Online (Sandbox Code Playgroud)
作品。
[
{$match …Run Code Online (Sandbox Code Playgroud) 我尝试使用keep-alive连接mongoose,但似乎mongoose首先关闭连接.
我更改了embed.c以发回连接:keep-alive.响应后,连接仍然关闭.
border@ubuntu:~$ nc 127.0.0.1 9999
GET /test_get_request_info HTTP/1.1
Connection: keep-alive
HTTP/1.1 200 OK
Content-Type: text/plain
Connection: keep-alive
Method: [GET]
URI: [/test_get_request_info]
HTTP version: [1/1]
HTTP header [Connection]: [keep-alive]
Query string: []
POST data: []
Remote IP: [2130706433]
Remote port: [56719]
Remote user: [] <-----------------connection closed, nc returns
border@ubuntu:~$
Run Code Online (Sandbox Code Playgroud) 我正在尝试将方法从 model.js 传递到我的 Route.js ..并且我的路线找不到任何方法!我搜索了解决方案并测试了很多代码,但没有成功。
我是 Node 的初学者,如果这是一个愚蠢的错误,我很抱歉。
这是我的代码的一部分:
路由.js
var mongoose = require('mongoose');
var membersModel = new require('../models/MemberModel');
// Member list page
exports.list = function(req, res){
membersModel.findAll(function(err, docs){
res.render('list.jade', { title: 'My Registration App - Member list', member: docs });
});
};
Run Code Online (Sandbox Code Playgroud)
会员模型.js
var mongoose = require('mongoose'),
Schema = mongoose.Schema,
ObjectId = Schema.ObjectId;
// Open DB connection
var MemberSchema = new Schema({
id : ObjectId,
title : { type: String, required: true, enum: ['Mr', 'Mrs', 'Mme', 'Miss'] },
lastname …Run Code Online (Sandbox Code Playgroud) 我有一个示例代码,显示结果,并希望将结果转换为数组.
TranModel
.find({ quantityout: 1 },
{ _id: 0} )
.sort({ tag: 1 })
.select( 'tag' )
.populate( 'createdby' )
.exec(function(err, data){
if(err){
res.json(err)
} else {
res.json(data)
}
})
Run Code Online (Sandbox Code Playgroud)
结果
[
{
"tag": "TH000001"
},
{
"tag": "TH000006"
},
{
"tag": "TH000009"
},
{
"tag": "TH000011"
},
{
"tag": "TH000014"
}
]
Run Code Online (Sandbox Code Playgroud)
我需要将结果转换为这样的结果
[
"TH000001",
"TH000006",
"TH000009",
"TH000011",
"TH000014"
]
Run Code Online (Sandbox Code Playgroud) mongodb ×5
mongoose ×4
json ×2
node.js ×2
aggregate ×1
express ×1
http ×1
keep-alive ×1
knockout.js ×1
meteor ×1
methods ×1
pymongo ×1
python ×1
streaming ×1
web-services ×1