我正在使用Mongoose.js来创建带有模式的模型.
我有一个模型列表(很多),有时我想获得构成特定模型的属性/键.
是否有方法为任何给定的模型提取属性模式?
例如,
var mySchema = module.exports = new Schema({
SID: {
type: Schema.Types.ObjectId
//, required: true
},
teams: {
type: [String]
},
hats: [{
val: String,
dt: Date
}],
shields: [{
val: String,
dt: Date
}],
shoes: [{
val: String,
dt: Date
}]
}
Run Code Online (Sandbox Code Playgroud)
);
是否可以提取/识别模式的属性[SID, hats, teams, shields, shoes]?
我有这个mongoose架构
var mongoose = require('mongoose');
var ContactSchema = module.exports = new mongoose.Schema({
name: {
type: String,
required: true
},
phone: {
type: Number,
required: true,
index: {unique: true}
},
messages: [
{
title: {type: String, required: true},
msg: {type: String, required: true}
}]
}, {
collection: 'contacts',
safe: true
});
Run Code Online (Sandbox Code Playgroud)
并尝试通过执行以下操作来更新模型:
Contact.findById(id, function(err, info) {
if (err) return res.send("contact create error: " + err);
// add the message to the contacts messages
Contact.update({_id: info._id}, {$push: {"messages": {title: title, msg: msg}}}, …Run Code Online (Sandbox Code Playgroud) 当我碰到这个时,我正在浏览角度文档:
https://github.com/angular/angular.js/blob/master/src/ng/directive/input.js#L1556
请注意 this.$viewValue = Number.NaN;
不仅在这个文档中,而且在其他角度文档中也是如此.
这样做的优点/缺点是什么,而不是将其设置为undefined或null?
我在从模块函数返回结果时遇到一些问题.
以下是我正在使用的两个文件.
当我调用导出的函数时,它返回nothings.
有什么建议/修复原因吗?它与回调有关吗?
车型/ index.js
module.exports = exports = function(library) {
modCodes.findOne({name: library}, {modcode:1}, function(err, mc) {
if (err) throw new Error(err);
var db = mongoose.createConnection('mongodb://localhost:27017/' + mc.modcode + '?safe=true');
var models = {
Books: db.model('books', require('./schemas/books'))
}
return models;
});
};
Run Code Online (Sandbox Code Playgroud)
books.js
var Models = require('../models');
console.log(Models("myLibrary")); //return nothing
Run Code Online (Sandbox Code Playgroud) 我有一个类似于此的文档:
{
'user_id':'{1231mjnD-32JIjn-3213}',
'name':'John',
'campaigns':
[
{
'campaign_id':3221,
'start_date':'12-01-2012',
'worker_id': '00000'
},
{
'campaign_id':3222,
'start_date':'13-01-2012',
'worker_id': '00000'
},
...
etc
...
]
}
Run Code Online (Sandbox Code Playgroud)
假设我想增加数组中campaign_id的元素7 campaigns.
使用带有猫鼬驱动程序的点,我想我可以这样做:
camps.findOneAndUpdate({name: "John"}, {$inc: {"campaigns.7.campaign_id": 1}}, upsert: true, function(err, camp) {...etc...});
这不会增加campaign_id.
关于增加这个的任何建议?
我似乎无法使AJAX调用正确.还有其他QA处理该$.ajax()功能,但我正试图解决这个问题$.post().
单击表单按钮时,将执行头部的javascript,其中包括a $.post().URL /login被路由并传递给loginPost函数.确定响应并将其发送回javascript(对吗?).相反,网页呈现响应(传递||失败).
为什么AJAX调用的响应不会被发送回处理?
这是一个简单的例子,我正在努力让我更好地了解expressJS和jQuery中的AJAX如何工作.任何帮助是极大的赞赏!
- views/login.jade
script(src='/_js/jquery-1.8.2.min.js')
script
$(document).ready(function(req, res) {
$('#login').submit(function() {
var formData = $(this).serialize();
console.log(formData);
$.post('/login', formdata, processData).error('ouch');
function processData(data, status) {
console.log(status);
console.log(data);
if (data == 'pass') {
$('#content').html('<p>You have successfully loggin in!</p>');
} else {
if (! $('#fail').length) {
$('#formFrame').prepend('<p id="fail">Incorrect login information. Please try again)</p>');
}
}
} //end processData
}); //end submit
}); //end ready
div.main
h1= title
div#formFrame
form(id='login', action='/login', method='POST')
p …Run Code Online (Sandbox Code Playgroud) 我有一台服务器启动并运行,没有错误被抛出.我正在从mongodb传输数据.当数据完成流式传输时,我想调用'close'然后断开mongo数据库.
以下是我的代码.当我尝试连接到服务器时,第一个请求成功,但任何其他请求都失败.
当我试图检查mongodb是否被断开时,我发现它不是.
你如何使用mongoose.connection.close()它,什么时候会失败?
var http = require('http')
, url = require('url')
, mongoose = require('mongoose')
, Schema = mongoose.Schema
, server, n;
server = http.createServer(function(request, response) {
var path = url.parse(request.url).pathname.slice(0, 4);
n = url.parse(request.url).pathname.slice(5);
// connect to mongo
mongoose.set('debug', true);
mongoose.connect('localhost', 'lotsOfNumber');
mongoose.connection.on('error', function(err) {
console.error('connection error: ' + err);
});
mongoose.connection.on('open',function() {
var stuff = mongoose.model('numbersHere', new Schema({serialNumber: Number}, {safe: true}));
switch (path) {
case '/slq':
var stream = stuff.find({}).limit(1).skip(n).sort('field value').stream();
stream.on('error', function(err) {
console.error("Error …Run Code Online (Sandbox Code Playgroud) 我正在尝试实现这个例子。
一切正常,直到我尝试删除某个项目。
使用这个:
request.onupgradeneeded = function(event) {
console.log("upgrade", event);
db = event.target.result;
console.log("db", db);
if (!db.objectStoreNames.contains("chatBot")) {
var objectStore = db.createObjectStore("chatBot", {keyPath: "timeStamp", autoIncrement: true});
}
};
Run Code Online (Sandbox Code Playgroud)
并设置删除:
btnDelete.addEventListener("click", function() {
var id, transaction, objectStore, request;
id = document.getElementById("txtID").value;
console.log("id", typeof id);
transaction = db.transaction("people", "readwrite");
objectStore = transaction.objectStore("people");
request = objectStore.delete(id);
request.onsuccess = function(evt) {
console.log("deleted content");
};
}, false);
Run Code Online (Sandbox Code Playgroud)
将项目添加到 indexedDB 没有问题,但由于某种原因,我无法弄清楚为什么它无法删除这些项目。
是id一个字符串,objectStore.delete(id)是正确的实现。
这是示例的粘贴箱
使用火狐 18